javascript - 以函数式方式向 js 对象添加字段

标签 javascript arrays node.js functional-programming

我有一个对象数组,其中包含 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/

相关文章:

javascript - 递归函数: where am I wrong here?

javascript - 如何在nodejs中使用bower包?

javascript - Jasmine spy 没有找到属性(property)

javascript - React-Native native-base 如何减小卡片项之间的间距?

javascript - 如何以编程方式设置 Kendo 网格数据源 pageSize

c - void 打印数组未按预期工作

javascript - 合并子树节点中的重复文件路径

javascript - 从末尾索引数组

html - NodeJS 和 Express : CSS not loading

javascript - @Html.Editor() 的onfocus 和onblur 事件怎么写?