如何 add/append 到 javascript 中的现有 Web 存储?

How to add/append to existing Web storage in javascript?

我正在尝试 add/append 到 new/existing localStorage 使用此代码:

 function add(){

    var name = document.getElementById("name").value;
    var ort = document.getElementById("ort").value;

    var user = {"name":name, "ort":ort};

    var exist = [];

    var tmp = (JSON.parse(localStorage.getItem("users")));

    if(tmp)
        exist.push(tmp);
    exist.push(user);
    localStorage.setItem("users",JSON.stringify(exist));

    console.log(JSON.parse(localStorage.getItem("users")));
    var obj = JSON.parse(localStorage.getItem("users"));
    for(var i=0; i<obj.length; i++) {
        console.log('key: ' + i + '\n' + 'value: ' + obj[i]);
    }


}

查看 Chrome 开发人员工具 localStorage 如下所示:

   [[{"name":"a","city":"a"}],{"name":"b","city":"b"}]

但我想要的是:

   [{"name":"a","city":"a"},{"name":"b","city":"b"}]

我做错了什么?

感谢任何帮助,

此致,

localStorage 只存储 strings。您需要 stringify 您的 exist 然后保存到 storage

localStorage.setItem("users",JSON.stringify(exist));

要检索它,请使用 JSON.parse

var exist = JSON.parse(localStorage.exist); //Even for users object do the same

更新

要仅将数组 tmp 内的对象推送到 exist,请使用 map():

tmp.map(function(item){
 exist.push(item);
})