使用数组更新本地存储值

问题描述 投票:0回答:2

我创建了一些表单,在提交后将一些数据存储在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中的现有项目。

javascript jquery local-storage
2个回答
1
投票

一旦你调用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));

0
投票

这是一个功能:

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时使用双引号(“”)而不是('')

© www.soinside.com 2019 - 2024. All rights reserved.