Javascript 尝试更改对象内的元素值
我试图从本地存储中获取一些价值。该值由一个数组组成,该数组包含包含主题内元素的对象, 我试图更改其中一个对象中特定元素的值,并将其设置回本地存储Javascript 尝试更改对象内的元素值,javascript,Javascript,我试图从本地存储中获取一些价值。该值由一个数组组成,该数组包含包含主题内元素的对象, 我试图更改其中一个对象中特定元素的值,并将其设置回本地存储 let x = JSON.parse(localStorage.getItem("Checker")); var y = JSON.parse(x); var z = JSON.parse(y[1]) 这是varz的值: {task: " t", date: "2020-03-02", time: "01:01", number: 1} 我的问题是
let x = JSON.parse(localStorage.getItem("Checker"));
var y = JSON.parse(x);
var z = JSON.parse(y[1])
这是varz
的值:
{task: " t", date: "2020-03-02", time: "01:01", number: 1}
我的问题是如何将正确设置为1的元素“number”更改为4,并将其设置回本地存储?将x更改为所需的值,然后使用:
localStorage.setItem('Checker', JSON.stringify(x))
您可以使用
json.stringyfy()
方法将json对象设置回本地存储
let x = JSON.parse(localStorage.getItem("Checker"));
var y = JSON.parse(x);
var z = JSON.parse(y[1])
已编辑 z.number = 4;
y[1] = z
console.log(y);
localStorage.setItem("Checker " , JSON.stringify(y));
JSON.parse
是递归的,当它应用于x
时,它将应用于其中嵌套的任何对象:
var x = JSON.parse(localStorage.getItem("Checker"));
x[1].number = 4;
localStorage.setItem("Checker", JSON.stringify(x));
后退一步。差不多
// z == {task: " t", date: "2020-03-02", time: "01:01", number: 1}
z.number = 4;
y[1] = JSON.stringify(z);
localStorage.setItem("Checker", JSON.stringify(JSON.stringify(y)));
我想
但是,以这种方式存储数据只会引起错误。这是JavaScript的基础
z.number=4
为什么要使用需要JSON.parse(JSON.parse(JSON.parse(…)))
?这没有用,因为它改变了“Checker”的整个值到Z并删除每个其他对象…好的,所以您只想更新某些值@SahiBalataCheckout我的更新代码。它会解决你的问题@萨希巴拉塔