我创建了一些表单,在提交后将一些数据存储在localstorage
中作为数组:
var anInput = {'name':'John', 'age':'23'};
if(localStorage.getItem("artikli") === null) {
var artikal = [anInput];
localStorage.setItem("artikli",
JSON.stringify(artikli));
} else {
var artikli = localStorage.getItem("artikli"),
a = JSON.parse(artikli),
b = a.replace(/\[|\]/g, ""),
artikal = [b,anInput];
}
我试过这个,但是我收到了错误:
a.replace不是一个功能
我正在尝试新表单提交以更新localstorage中的现有项目。
一旦你调用JSON.parse()
,你就有了一个数组,而不是一个JSON字符串。您可以对此使用常规数组操作 - 使用.push()
向数组添加新对象。
var anInput = {'name':'John', 'age':'23'};
var json = localStorage.getItem("artikli");
if (json) {
artikli = JSON.parse(json);
} else {
artickli = [];
}
artikli.push(anInput);
localStorage.setItem("artikli", JSON.stringify(artikli));
这是一个功能:
function storageToArray(storage) {
var res=[]; // new array
for (var i=0;i<storage.length;i++) {
res.push(JSON.parse(storage.getItem('"'+i+'"')));
}
return res;
}
提示:使用JSON时使用双引号(“”)而不是('')