1

我知道我可以在 javascript 中创建 JSON 格式的数据

data = JSON.parse(localStorage.something);
data[0] == "some data";

但是当我尝试删除它不起作用时。

delete data[0];
4

2 回答 2

3

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);
于 2013-09-29T15:10:27.893 回答
2

之后:

data = JSON.parse(localStorage.something);

然后data变量包含一个独立的对象,该对象从现在开始完全与 localStorage 分离(它只存储一个无论如何都需要解析的字符串,而不是一个“真实”对象)。

如果更改它,则需要像这样手动更新本地存储:

localStorage.setItem("something", JSON.stringify(data));

附带说明:如果您针对的是较旧的浏览器,请确保包含类似 json2.js 的内容,以使 JSON 对象在任何地方都可以工作。

于 2013-09-29T15:20:25.957 回答