我创建了一种表单,提交后将某些数据作为数组存储在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));

09-25 17:59