Sooo我有这个数组
var items = ["shovel", "sword", "rope", "gun"];
我将其字符串化并放在localStorage
中localStorage.setItem("items", JSON.stringify(items));
然后我调用此函数用空字符串替换传递的变量的索引值。这样我就可以检查特定数组索引的值是否可用。该值将被删除,但其索引仍需要稍后检查。
function removeItem(itm) {
var itemArray = JSON.parse(localStorage.getItem("items")); //old array
var index = itemArray.indexOf(itm);
if (index > -1) {
itemArray[index]=""; //edited new array
localStorage.setItem("items", JSON.stringify(itemArray)); //does not store
}
}
但是,新编辑的数组不会返回localStorage
答案 0 :(得分:0)
对我来说完全没问题:http://jsfiddle.net/tto685z4/
var items = ["shovel", "sword", "rope", "gun"];
localStorage.setItem("items", JSON.stringify(items));
function removeItem(itm) {
var itemArray = JSON.parse(localStorage.getItem("items")); //old array
var index = itemArray.indexOf(itm);
if (index > -1) {
itemArray[index]=""; //edited new array
localStorage.setItem("items", JSON.stringify(itemArray)); //does not store
}
}
removeItem('rope');
alert(localStorage.getItem('items'));
返回["shovel", "sword", "", "gun"]
您一定是在尝试删除不存在的项目。
答案 1 :(得分:0)
如果你想删除元素,只需进行一些更改:
itemArray[index]="";
更改为:
itemArray = itemArray.splice(index, 1) and you will not see this element again