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

如果我在控制台中尝试以下操作,它可以完美运行:

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 中。当您的应用程序启动时,对您保存在 localStorage 中的值进行 JSON 解码。

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

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

关于javascript - localStorage - 将对象附加到对象数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7228707/

10-12 12:20
查看更多