[英]Adding key/value pair fails with Object assign
我有一個對象,我存儲在本地存儲中。 我想檢索對象並向其添加一個鍵/值項。 這是代碼
var testObject = { 'one': 1, 'two': 2, 'three': 3 };
// Put the object into storage
localStorage.setItem('testObject', JSON.stringify(testObject));
// Retrieve the object from storage
var retrievedObject = localStorage.getItem('testObject');
var newdata = JSON.parse(retrievedObject);
var obj2 = {"four":"4"};
Object.assign(newdata, obj2);
$.each(JSON.parse(retrievedObject), function (index, value) {
console.log(index+" "+value);
});
新項目未添加到testObject
。 如何將項目添加到現有對象?
你成功地改變newdata
但你不使用它。 而是再次調用JSON.parse(retrievedObject)
。
var testObject = { 'one': 1, 'two': 2, 'three': 3 }; // Put the object into storage // Just use a variable because we cant use localstorage on snippet var storage = JSON.stringify(testObject); // Retrieve the object from storage var retrievedObject = storage; var newdata = JSON.parse(retrievedObject); var obj2 = {"four":"4"}; Object.assign(newdata, obj2); $.each(newdata, function (index, value) { console.log(index+" "+value); });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
retrievedObject
是一個字符串。 您解析字符串,修改生成的對象( newdata
得到修改)。 您不應該期望更改初始字符串。
要更新localStorage,只需執行以下操作:
localStorage.setItem('testObject', JSON.stringify(newdata));
請注意,在該操作之后, retrievedObject
仍然是{ 'one': 1, 'two': 2, 'three': 3 }
的字符串
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.