Javascript 使用localstorage更改嵌套对象中的值

Javascript 使用localstorage更改嵌套对象中的值,javascript,local-storage,Javascript,Local Storage,我有一段代码,用于在localstorage中设置obj值 const obj={ 姓名:“比尔”, 元:{ 年龄:18 } }; const data=localStorage.setItem('user',JSON.stringify(obj))假设您有数据,问题是…data.meta.age=15是一个语法错误。在对象文本中不使用=,尝试传播age属性(这是一个数字)也没有意义。相反: const newData = { ...data, meta: {

我有一段代码,用于在localstorage中设置
obj

const obj={
姓名:“比尔”,
元:{
年龄:18
}
};

const data=localStorage.setItem('user',JSON.stringify(obj))
假设您有
数据
,问题是
…data.meta.age=15
是一个语法错误。在对象文本中不使用
=
,尝试传播
age
属性(这是一个数字)也没有意义。相反:

const newData = {
    ...data,
    meta: {
        ...data.meta,
        age: 15,
    },
};
localStorage.setItem("user", JSON.stringify(newData));
请注意,我们必须为
meta
创建一个新的最外层对象和一个新对象

实例:

const数据={
姓名:“比尔”,
元:{
职业:“程序员”//增加了,所以我们看到它被复制了
年龄:18岁,
},
};
常数newData={
…数据,
元:{
…data.meta,
年龄:15岁,
},
};

console.log(newData)在尝试更改项目之前,是否不需要获取项目并对其进行分析?代码中的
数据
是什么不起作用的?它应该是数据的当前版本(例如,
const data=JSON.parse(localStorage.getItem(“用户”);
)。
const newObj=obj;newObj.meta.age=15;const data=localStorage.setItem('user',JSON.stringify(newObj))