在localstorage之后尝试使用.push时,Array为null

时间:2016-12-06 02:26:17

标签: javascript arrays null push

当我尝试将新值推入其中时,我得到一个TypeError,说我的数组为空。

//first off..
var sillyArray= ["dummy"];
localStorage.setItem("sillyArray", JSON.stringify(sillyArray));

//I later used this
sillyArray = JSON.parse(localStorage.getItem("sillyArray"));
//the error is here
sillyArray.push("yes");
localStorage.setItem("sillyArray", JSON.stringify(sillyArray));

我无法推送或解析此内容吗?

(编辑发布错误)

3 个答案:

答案 0 :(得分:2)

yesArray从未definded。这就是.push()无法实现的原因。

答案 1 :(得分:0)

是的,您可以但是您正在尝试将项目推送到undefined var,这就是您获得 TypeError 的原因。

您应该如何做到这一点:

var array = ['dummy'];
localStorage.setItem('someKey', JSON.stringify(array));
array = JSON.parse(localStorage.getItem('someKey'));
array.push('foo');
localStorage.setItem('someKey', JSON.stringify(array));

然后,如果你这样做

console.log(JSON.parse(localStorage.getItem('someKey')))

输出将是您期望的["dummy", "foo"]

答案 2 :(得分:0)

正如用户nnnnnn所说,我没有正确执行我的localStorage.setItem("sillyArray", JSON.stringify(sillyArray));

它坐在if语句中(没有图示)没有执行导致null。

谢谢你们!