我知道我可以在javascript中创建JSON格式的数据
data = JSON.parse(localStorage.something);
data[0] == "some data";
但是当我试图删除它不起作用时。
delete data[0];
答案 0 :(得分: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);
答案 1 :(得分:2)
完成后:
data = JSON.parse(localStorage.something);
然后data
变量包含一个从属对象,该对象从现在开始与localStorage完全分离(localStorage只存储需要解析的String,而不是'真正的'对象)。
如果更改它,则需要手动更新本地存储:
localStorage.setItem("something", JSON.stringify(data));
作为旁注:如果您的目标是旧浏览器,那么请确保包含类似json2.js的内容,以使JSON对象在任何地方都能正常工作。