【发布时间】:2016-11-25 20:03:03
【问题描述】:
在本地存储中,我有一个名为 favourites 的对象,它包含这个..
"{
"id3333":{
"URL":"somewhere.comm/page1/",
"TITLE":"Page 1 Title",
},
"id4444":{
"URL":"somewhere.comm/page2/",
"TITLE":"Page 2 Title",
}
}"
如何根据 ID 删除对象(例如 id3333 和 id4444)
我已经尝试了以下以及其他一些巫术......
localStorage.removeItem('id3333'); // no errors, no removal
localStorage.removeItem('favourites':'id3333'); // SyntaxError: missing ) after argument list
localStorage.removeItem('favourites[id3333]'); // no errors, no removal
localStorage.removeItem('id3333', JSON.stringify('id3333')); // no errors, no removal
另外,我需要根据一个变量来获取要删除的键名,所以像这样..
var postID = 'id3333';
localStorage.removeItem(postID);
或
var objectName = 'favourites';
var postID = 'id3333';
localStorage.removeItem(objectName[postID]);
是否可以直接删除嵌套项,还是需要检索完整对象然后删除该项,然后再次将对象设置回本地存储?
到目前为止,我最接近直接删除任何内容的是..
localStorage.removeItem('favourites');
但这当然会移除整个对象。
【问题讨论】:
-
localStorage中只能存储字符串,不能存储对象。因此,您唯一的选择是将整个字符串加载到内存中,对其进行操作,然后将其保存回来。正如@epascarello 所展示的那样,JSON 方法非常适合这一点。
标签: javascript jquery json local-storage