我知道我可以在 javascript 中创建 JSON 格式的数据
data = JSON.parse(localStorage.something);
data[0] == "some data";
但是当我尝试删除它不起作用时。
delete data[0];
我知道我可以在 javascript 中创建 JSON 格式的数据
data = JSON.parse(localStorage.something);
data[0] == "some data";
但是当我尝试删除它不起作用时。
delete data[0];
delete data[0]
只会从data
数组中删除该项目,而不是该localStorage
项目(因为您已经知道,该项目是一个字符串)。
您必须保存更改。另外,我建议data.shift()
根据 minitech 的评论使用delete
-delete
对于对象属性而不是数组索引更好。
data = JSON.parse(localStorage.something);
data.shift(); // delete data[0] without breaking sequence
localStorage.something = JSON.stringify(data);
之后:
data = JSON.parse(localStorage.something);
然后data
变量包含一个独立的对象,该对象从现在开始完全与 localStorage 分离(它只存储一个无论如何都需要解析的字符串,而不是一个“真实”对象)。
如果更改它,则需要像这样手动更新本地存储:
localStorage.setItem("something", JSON.stringify(data));
附带说明:如果您针对的是较旧的浏览器,请确保包含类似 json2.js 的内容,以使 JSON 对象在任何地方都可以工作。