将数组添加到本地存储并检索数组
Add an array to local storage and retrieve the array
我正在使用本地存储,但遇到了一个问题。
我想像这样存储密钥的值。这些值是动态添加的,应该用“,”分隔。我应该通过比较值
来检索它们
这是我的看法
key value
user1 a,b,c,d,e....
应动态添加值字段中的值。说我有字段用户名并添加朋友。用户名应采用位置键,添加朋友(动态)应采用值位置。
first iteration:
username _a________
add friend _hello_______
localstorage : key value
a hello
second iteration:
username _____a___
add friend : __stact___
local storage : key value
a hello , stact
third iteration :
username _____a___
add friend : __hi___
local storage : key value
a hello , stact,hi
如果我想删除 stact,我必须写 localStorage.removeKey(a[1])
。
请帮助我,因为我是这方面的新手
我对我的代码使用了以下答案之一,但没有用。相反,它正在抛出错误
我尝试了以下
var ls = (function () {
var _key = function (username) {
return username;
},
_saveFriends = function (username, friends) {
localStorage.setItem(ls._key(username), JSON.stringify(friends));
};
function getFriends(username) {
return JSON.parse(localStorage.getItem(ls._key(username)) || '[]');
}
return {
getFriends: getFriends,
addFriend: function (username, friend) {
var friends = getFriends(username);
friends.push(friend);
_saveFriends(friends);
},
removeFriend: function (username, friend) {
var friends = getFriends(username);
var index = friends.indexOf(friend);
if (index >= 0) {
friends.splice(index, 1);
}
_saveFriends(friends);
}
};
})();
function main()
{
ls.addFriend('revanth','aastha');
ls.addFriend('revanth','pobala');
ls.getFriends('revanth');
这是错误
Uncaught TypeError: undefined is not a function 错误在这一行
return JSON.parse(localStorage.getItem(ls._key(用户名)));
function addItem(user,str){
// get value in localStorage and split into array
var tempArr = localStorage.getItem(user).split(",");
// if only adding unique items, check if unique
// if (tempArr.indexOf(str)<0)...
tempArr.push(str);
// turn the temp array back into string
var newStr = tempArr.join();
// save back to localStorage
localStorage.setItem(user, newStr);
}
以下是您可以在全局命名空间上使用的一些函数,以便在任何框架中轻松完成此操作:
var ls = (function () {
var _key = function (username) {
return username; // in case you want to namespace the keys later
},
_saveFriends = function (username, friends) {
localStorage.setItem(ls._key(username), JSON.stringify(friends));
};
function getFriends(username) {
return JSON.parse(localStorage.getItem(ls._key(username)) || '[]');
}
return {
getFriends: getFriends,
addFriend: function (username, friend) {
var friends = getFriends(username);
friends.push(friend);
_saveFriends(friends);
},
removeFriend: function (username, friend) {
var friends = getFriends(username);
var index = friends.indexOf(friend);
if (index >= 0) {
friends.splice(index, 1);
}
_saveFriends(friends);
}
};
})();
// Use like so:
// ls.getFriends(username);
// ls.addFriend(username, friendname);
// ls.removeFriend(username, friendname);
我正在使用本地存储,但遇到了一个问题。
我想像这样存储密钥的值。这些值是动态添加的,应该用“,”分隔。我应该通过比较值
来检索它们这是我的看法
key value
user1 a,b,c,d,e....
应动态添加值字段中的值。说我有字段用户名并添加朋友。用户名应采用位置键,添加朋友(动态)应采用值位置。
first iteration:
username _a________
add friend _hello_______
localstorage : key value
a hello
second iteration:
username _____a___
add friend : __stact___
local storage : key value
a hello , stact
third iteration :
username _____a___
add friend : __hi___
local storage : key value
a hello , stact,hi
如果我想删除 stact,我必须写 localStorage.removeKey(a[1])
。
请帮助我,因为我是这方面的新手 我对我的代码使用了以下答案之一,但没有用。相反,它正在抛出错误 我尝试了以下
var ls = (function () {
var _key = function (username) {
return username;
},
_saveFriends = function (username, friends) {
localStorage.setItem(ls._key(username), JSON.stringify(friends));
};
function getFriends(username) {
return JSON.parse(localStorage.getItem(ls._key(username)) || '[]');
}
return {
getFriends: getFriends,
addFriend: function (username, friend) {
var friends = getFriends(username);
friends.push(friend);
_saveFriends(friends);
},
removeFriend: function (username, friend) {
var friends = getFriends(username);
var index = friends.indexOf(friend);
if (index >= 0) {
friends.splice(index, 1);
}
_saveFriends(friends);
}
};
})();
function main()
{
ls.addFriend('revanth','aastha');
ls.addFriend('revanth','pobala');
ls.getFriends('revanth');
这是错误 Uncaught TypeError: undefined is not a function 错误在这一行 return JSON.parse(localStorage.getItem(ls._key(用户名)));
function addItem(user,str){
// get value in localStorage and split into array
var tempArr = localStorage.getItem(user).split(",");
// if only adding unique items, check if unique
// if (tempArr.indexOf(str)<0)...
tempArr.push(str);
// turn the temp array back into string
var newStr = tempArr.join();
// save back to localStorage
localStorage.setItem(user, newStr);
}
以下是您可以在全局命名空间上使用的一些函数,以便在任何框架中轻松完成此操作:
var ls = (function () {
var _key = function (username) {
return username; // in case you want to namespace the keys later
},
_saveFriends = function (username, friends) {
localStorage.setItem(ls._key(username), JSON.stringify(friends));
};
function getFriends(username) {
return JSON.parse(localStorage.getItem(ls._key(username)) || '[]');
}
return {
getFriends: getFriends,
addFriend: function (username, friend) {
var friends = getFriends(username);
friends.push(friend);
_saveFriends(friends);
},
removeFriend: function (username, friend) {
var friends = getFriends(username);
var index = friends.indexOf(friend);
if (index >= 0) {
friends.splice(index, 1);
}
_saveFriends(friends);
}
};
})();
// Use like so:
// ls.getFriends(username);
// ls.addFriend(username, friendname);
// ls.removeFriend(username, friendname);