我在localStorage中存储一个对象数组,每次都要重新对象,附加新对象并再次存储。
只有在localStorage中已有条目时,代码才能正常工作 以下是代码:
var companies=[];
companies=JSON.parse(localStorage.getItem("companies")); //IMP line
companies.push(company);
localStorage.setItem("companies", JSON.stringify(companies));
当我评论' IMP行'第一次,以便用单个记录插入记录。一旦本地存储包含关键"公司"一切都很顺利。
请建议第一次插入阵列时可以检查的条件。 谢谢。
答案 0 :(得分:5)
您需要检查:
var strCompanies = localStorage.getItem("companies")
var companies = strCompanies ? JSON.parse(strCompanies) : [];
答案 1 :(得分:1)
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