是否有更简洁的方法来设置 bar
中的 a
、b
和 c
值。类似于 ES6 解构赋值语法?
bar = { foo: 10, a: 0, b: 0, c: 0, baz: 14 };
myFunc = (myObj) => {
const { foo } = myObj;
let a, b, c;
a = 1 + foo;
b = 2 + foo;
c = 3 + foo;
myObj.a = a;
myObj.b = b;
myObj.c = c;
}
myFunc(bar);
假设 bar
已在其他地方实例化,我想设置新值,而不为 bar
创建/分配新对象。我们可以这样做 myObj = {...myObj, a, b, c}
,但根据我的理解,这会将一个新对象分配给 bar
。
最佳答案
基于this answer to a similar question ,您可以使用Object.assign()
.
bar = { foo: 10, a: 0, b: 0, c: 0, baz: 14 };
myFunc = (myObj) => {
const { foo } = myObj;
let a, b, c;
a = 1 + foo;
b = 2 + foo;
c = 3 + foo;
Object.assign(myObj, {a: a, b: b, c: c});
}
myFunc(bar);
或者当然
const { foo } = myObj;
Object.assign(myObj, {a: 1 + foo, b: 2 + foo, c: 3 + foo})
关于javascript - 使用类似解构的语法分配给对象中的多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47007824/