簡體   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