如何使用spread/object.assign用动态值覆盖现有对象



我的状态中有一个对象。然后我动态地添加值,它可以看起来像这样:

{
2311: 2
}

如果2311值已经存在,我如何在不改变状态的情况下覆盖它。

添加新值很简单。我有一个对象obj = { prop: val},然后是{ ...this.state.obj, obj }但我不记得如何更改动态的CCD_ 4值。

我知道我可以使用lodash或其他东西进行深度复制,更改特定值,我已经完成了,但我想知道如何按照上面描述的方式进行。

谢谢你的帮助。

使用Object.assign(obj1,obj2(

Object.assign(obj, { 2311: 'new value' })

您可以简单地执行,例如:

let obj = {test: 23, test2: 24, 2311: 2};
obj = {...obj, 2311: "new value"}
console.log(obj);

这样,您将拥有以前的所有值,并且只更改2311

我在这里所做的(obj = {...obj, 2311: "new value"}(是从对象中复制所有值,并更改我想要的内容,因为在一个对象中不能有两个具有相同密钥的值,密钥2311被新值覆盖

最新更新