【问题标题】:Assigning JSON array retrived from local storage to JavaScript array将从本地存储中检索到的 JSON 数组分配给 JavaScript 数组
【发布时间】:2015-03-11 12:57:03
【问题描述】:

我在 localStorage 中存储了一个对象数组,每次都检索它,附加新对象并再次存储。

代码可以正常工作,前提是 localStorage 中已经有一个条目 以下是代码:

var companies=[];

companies=JSON.parse(localStorage.getItem("companies")); //IMP line

companies.push(company);
localStorage.setItem("companies", JSON.stringify(companies));

当我第一次评论“IMP 行”时,这很好用,以便用单条记录插入一条记录。一旦本地存储包含关键“公司”的记录,一切都会正常。

请提出第一次插入数组时可以检查的条件。 谢谢。

【问题讨论】:

    标签: javascript arrays json local-storage


    【解决方案1】:

    您需要检查:

    var strCompanies = localStorage.getItem("companies")
    var companies = strCompanies ? JSON.parse(strCompanies) : [];
    

    【讨论】:

      【解决方案2】:

      localStorage.getItem 将在未找到任何内容的情况下返回 null,JSON.parse(null) 也是如此。所以你最终会得到 companies 为空。

      试试这个:

      var companies=[];
      
      if (localStorage.getItem("companies"))
          companies=JSON.parse(localStorage.getItem("companies")); //IMP line
      
      companies.push(company);
      
      localStorage.setItem("companies", JSON.stringify(companies));
      

      MDN

      【讨论】:

      • 感谢您的解释。我不知道 getItem 返回 null。现在很简单:)
      猜你喜欢
      • 1970-01-01
      • 2023-03-08
      • 1970-01-01
      • 2018-05-15
      • 1970-01-01
      • 1970-01-01
      • 2016-03-31
      • 2016-04-02
      • 2016-08-18
      相关资源
      最近更新 更多