我有一个对象数组,其中包含 Node.js 中的一组字段。可以说
let arr = [ {a:1,b:2}, {a:3,b:6}]
我想扩展所有对象并分配给一个新变量。我的天真的方法就像下面的方式
let arr2 = arr.map(x => x.c = x.a + x.b )
但是,箭头函数返回 x.a+x.b 值,而不是 x
对象,因此这不会像我希望的那样工作。它还会就地更改 arr
,这是非常无用且令人困惑的。
我对 js 比较陌生,所以也许我从一开始就想错了。这种对象扩展的惯用 js 表达式是什么?
最佳答案
您可以使用 Object.assign
将一个对象的所有属性写入另一个对象:
const arr2 = arr.map(x => Object.assign({c: x.a + x.b}, x));
也许在未来的某个时候,对象传播(尚未标准化):
const arr2 = arr.map(x => ({...x, c: x.a + x.b}));
关于javascript - 以函数式方式向 js 对象添加字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43165828/