我制作了一些测试代码,但它并没有按照我想要的方式工作。
我推送localstorage
上的数据,并从localstorag
e获取数据。之后,我更改了数据的值,并在localsorage
上推送并添加数据。然后,我检查了数据,我试图获取具有JSON.parse
功能的数据。但是,它没有用。
此处a code
var temp1 = {
'temp1': true,
'test1': true
};
var temp2 = {
'temp2': true,
'test2': true
};
var temp3 = [];
temp3.push(temp1);
localStorage.setItem("testing", JSON.stringify(temp3));
var temp4 = localStorage.getItem("testing");
var temp5 = JSON.parse(temp4);
for(var i=0; i<temp5.length; i++)
{
temp5[i].temp1 = false;
}
temp3.push(temp5);
localStorage.setItem("testing", JSON.stringify(temp3));
var temp6 = localStorage.getItem("testing"));
var temp7 = JSON.parse(temp6);
for(var j=0; j<temp7.length; i++)
{
temp7[i].test1 = false;
}
temp3.push(temp7);
localStorage.setItem("testing", JSON.stringify(temp3));
答案 0 :(得分:1)
由于si2zle有一些小的语法错误,但主要问题是,当您将temp5
和temp7
推送到temp3
时,实际上是在推动新的数组而不是单个元素。
您需要将每个单独的元素推送到for循环内的temp3
,如此
for(var i=0; i<temp5.length; i++)
{
temp5[i].temp1 = false;
temp3.push(temp5[i]);
}
答案 1 :(得分:0)
以下代码出错:
for(var j=0; j<temp7.length; i++)
{
temp7[i].test1 = false;
}
是j ++而不是i ++和temp7 [j] .test1 = false;不是temp7 [i]
答案 2 :(得分:0)
还有一个额外的&#39;)&#39; at var temp6 = localStorage.getItem(&#34; testing&#34;)); 同时,&#34; temp3.push(temp5);&#34;它将数组推入数组中 像这样:[{&#34; temp1&#34;:true,&#34; test1&#34;:true},[{&#34; temp1&#34;:false,&#34; test1&#34;:真}]]
which creates problem while parsing in the for loop.
for(var j=0; j<temp7.length; i++)
{
temp7[i].test1 = false;
}
希望这会有所帮助:)