gpt4 book ai didi

javascript - Object.assign——覆盖嵌套属性

转载 作者:IT王子 更新时间:2023-10-29 03:10:03 25 4
gpt4 key购买 nike

我有一个像这样的对象a:

const a = {
user: {

groups: […]

}
}

因此 a.user 中有更多属性

我只想更改 a.user.groups 值。如果我这样做:

const b = Object.assign({}, a, {
user: {
groups: {}
}
});

b 除了b.user.groups 没有任何其他属性,所有其他的都被删除。是否有任何 ES6 方法可以只更改嵌套属性,而不会丢失所有其他属性,使用 Object.assign

最佳答案

经过一番尝试,我找到了一个看起来很不错的解决方案:

const b = Object.assign({}, a, {
user: {
...a.user,
groups: 'some changed value'
}
});

为了使答案更完整,请在此处添加一个小注释:

const b = Object.assign({}, a)

本质上是一样的:

const b = { ...a }

因为它只是将 a (...a) 的所有属性复制到一个新对象。所以上面可以写成:

 const b = {
...a, //copy everything from a
user: { //override the user property
...a.user, //same sane: copy the everything from a.user
groups: 'some changes value' //override a.user.group
}
}

关于javascript - Object.assign——覆盖嵌套属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41588068/

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