javascript - 如何在没有变异的情况下更改对象内部的对象?
问题描述
所以我的问题是如何在不改变用户对象的情况下更改用户对象内的 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 呢?
例如,狗名更改为“雷克斯”。
得到像这样的对象
{
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
推荐阅读
- android - Firebase 电话身份验证:未调用 onCodeSent
- python - 在 Jupyter 笔记本单元格中漂亮地打印几个变量
- python - 如何上传文件并将其发送给某人 Tkinter
- r - 将列表元素输入到R中的变异循环?
- java - 从 Java Hashmap 生成树结构
- r - 通过元素访问列表组件的名称
- nativescript - Nativescript 提示对话框选择所有文本
- angular - 保存数组内的对象键
- javascript - Javascript 事件被捕获,但回调函数未执行
- c++ - 使用 boost::asio 而不链接到 OpenSSL