Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将从本地存储检索的JSON数组分配给JavaScript数组_Javascript_Arrays_Json_Local Storage - Fatal编程技术网

将从本地存储检索的JSON数组分配给JavaScript数组

将从本地存储检索的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

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

只有在localStorage中已经有条目时,代码才能正常工作 代码如下:

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。现在很简单:)