繁体   English   中英

如何在没有变异的情况下更改Object内的Object?

[英]How to change Object inside Object without mutation?

所以我的问题是如何更改用户对象内的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 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM