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



我得到一个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));

我无法推动或解析吗?

(编辑了发布错误)

yesArray从来都不是 definded。这就是为什么不可能.push()

是的,您可以尝试将项目推入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"]

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

它坐在if语句中(未显示),并未执行导致null的执行。

谢谢大家!

相关内容

  • 没有找到相关文章

最新更新