gpt4 book ai didi

javascript - 如何在不突变的情况下更改对象内部的对象?

转载 作者:行者123 更新时间:2023-11-30 11:16:14 24 4
gpt4 key购买 nike

所以我的问题是如何在不改变用户对象的情况下更改 petNames 对象。

const user = { 
name: 'Harry',
age: 50,
petNames: {
dog: 'Lisie',
cat: 'Foxer'
}
};

第一层我们可以改成

{...user, age: 48 }

它会返回

{ 
name: 'Harry',
age: 48,
petNames: {
dog: 'Lisie',
cat: 'Foxer'
}
};

但是我怎样才能改变 petNames 呢?

例如,狗名更改为“Rex”。

然后得到像

这样的对象
{ 
name: 'Harry',
age: 50,
petNames: {
dog: 'Rex',
cat: 'Foxer'
}
};

谢谢!

最佳答案

您也可以传播内部属性:

const user = {
name: 'Harry',
age: 50,
petNames: {
dog: 'Lisie',
cat: 'Foxer'
}
};

const newUser = {
...user,
petNames: {
...user.petNames,
dog: 'rex'
}
};

console.log(user.petNames === newUser.petNames); // false

关于javascript - 如何在不突变的情况下更改对象内部的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51427686/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com