我正在尝试将对象本地存储在对象内的数组中。
如果我在控制台中尝试以下操作,它可以完美运行:
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/