使用 localstorage 更改嵌套对象的值
Change a value from a nested object using localstorage
我有这段代码在本地存储中设置 obj
值。
const obj = {
name: "Bill",
meta: {
age: 18
}
};
const data = localStorage.setItem('user', JSON.stringify(obj));
现在我想更改本地存储中的 age
键:
localStorage.setItem('user', JSON.stringify({ ...data, ...data.meta.age= 15 } }));
,但它不起作用。
如何更改上面的值并查看localstorage的变化?
假设你有 data
,问题是 ...data.meta.age = 15
是一个语法错误。您不在对象字面量中使用 =
,并且尝试传播 age
属性(这是一个数字)没有任何意义。相反:
const newData = {
...data,
meta: {
...data.meta,
age: 15,
},
};
localStorage.setItem("user", JSON.stringify(newData));
请注意我们必须如何创建一个新的最外层对象以及 meta
的新对象。
实例:
const data = {
name: "Bill",
meta: {
occupation: "Programmer", // Added so we see it get copied
age: 18,
},
};
const newData = {
...data,
meta: {
...data.meta,
age: 15,
},
};
console.log(newData);
我有这段代码在本地存储中设置 obj
值。
const obj = {
name: "Bill",
meta: {
age: 18
}
};
const data = localStorage.setItem('user', JSON.stringify(obj));
现在我想更改本地存储中的 age
键:
localStorage.setItem('user', JSON.stringify({ ...data, ...data.meta.age= 15 } }));
,但它不起作用。
如何更改上面的值并查看localstorage的变化?
假设你有 data
,问题是 ...data.meta.age = 15
是一个语法错误。您不在对象字面量中使用 =
,并且尝试传播 age
属性(这是一个数字)没有任何意义。相反:
const newData = {
...data,
meta: {
...data.meta,
age: 15,
},
};
localStorage.setItem("user", JSON.stringify(newData));
请注意我们必须如何创建一个新的最外层对象以及 meta
的新对象。
实例:
const data = {
name: "Bill",
meta: {
occupation: "Programmer", // Added so we see it get copied
age: 18,
},
};
const newData = {
...data,
meta: {
...data.meta,
age: 15,
},
};
console.log(newData);