繁体   English   中英

localStorage - 将对象附加到对象数组

[英]localStorage - append an object to an array of objects

我正在尝试在对象内的数组中本地存储对象。

如果我在我的控制台中尝试以下操作,它可以完美地工

theObject = {}
theObject.theArray = []
arrayObj = {"One":"111"}
theObject.theArray.push(arrayObj)

但是,如果我按照我认为相同的方式执行操作,除了将结果存储在localStorage中之外,它将失败:

localStorage.localObj = {}
localStorage.localObj.localArray = []
stringArrayObj = JSON.stringify(arrayObj)
localStorage.localObj.localArray.push(stringArrayObj)

我收到以下错误...

localStorage.localObj.localArray.push(stringArrayObj)
TypeError
arguments: Array[2]
message: "—"
stack: "—"
type: "non_object_property_call"
__proto__: Error

知道我怎么能让这个工作吗?

干杯

您只能在localStorage中存储字符串。 您需要对对象进行JSON编码,然后将结果字符串存储在localStorage中。 当您的应用程序启动时,JSON解码您在localStorage中保存的值。

localObj = {}
localObj.localArray = []
localObj.localArray.push(arrayObj)

localStorage.localObj = JSON.stringify(localObj);
...
localObj = JSON.parse(localStorage.localObj);

LocalStorage只能存储key为字符串且值为字符串的键值对。 您可以将整个对象层次结构序列化为JSON,并将其另存为localStorage项目。

根据V8的消息来源(我假设您使用谷歌Chrome但希望这与其他JS引擎没有什么不同)TypeError与消息'non_object_property_call'比在undefined或null值上调用的方法发生。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM