将从本地存储检索的JSON数组分配给JavaScript数组
我在localStorage中存储一个对象数组,每次检索它,附加新对象并再次存储 只有在localStorage中已经有条目时,代码才能正常工作 代码如下:将从本地存储检索的JSON数组分配给JavaScript数组,javascript,arrays,json,local-storage,Javascript,Arrays,Json,Local Storage,我在localStorage中存储一个对象数组,每次检索它,附加新对象并再次存储 只有在localStorage中已经有条目时,代码才能正常工作 代码如下: var companies=[]; companies=JSON.parse(localStorage.getItem("companies")); //IMP line companies.push(company); localStorage.setItem("companies", JSON.stringify(companies
var companies=[];
companies=JSON.parse(localStorage.getItem("companies")); //IMP line
companies.push(company);
localStorage.setItem("companies", JSON.stringify(companies));
当我第一次对“IMP行”进行注释时,这样就可以很好地工作了,这样就可以用一条记录插入一条记录。一旦本地存储包含一个带有关键“公司”的记录,一切都会正常进行
请建议在首次插入阵列时可以检查的条件。
谢谢。您需要检查:
var strCompanies = localStorage.getItem("companies")
var companies = strCompanies ? JSON.parse(strCompanies) : [];
localStorage.getItem
在未找到任何内容的情况下将返回null,JSON.parse(null)
。所以你的公司
都是空的
试试这个:
var companies=[];
if (localStorage.getItem("companies"))
companies=JSON.parse(localStorage.getItem("companies")); //IMP line
companies.push(company);
localStorage.setItem("companies", JSON.stringify(companies));
请参见谢谢您的解释。。我不知道getItem返回null。现在很简单:)