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

Javascript 以函数方式向js对象添加字段,javascript,arrays,node.js,functional-programming,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 ) 但是,arrow函数返回x.a+x.b值,而不是x对象,因此这不会像我希望的那样工作。它还改变了arr,这是非常不实用和混乱的 我对js比较陌生,所以也许我从一开始就想错了。这种对象扩展的惯用js表达式是什么?您可以使用以下命

我在node.js中有一个包含一组字段的对象数组。比方说

let arr = [ {a:1,b:2}, {a:3,b:6}]
我想扩展所有对象并分配给一个新变量。我天真的做法如下

let arr2 = arr.map(x => x.c = x.a + x.b )
但是,arrow函数返回x.a+x.b值,而不是
x
对象,因此这不会像我希望的那样工作。它还改变了
arr
,这是非常不实用和混乱的


我对js比较陌生,所以也许我从一开始就想错了。这种对象扩展的惯用js表达式是什么?

您可以使用以下命令将所有属性从一个对象写入另一个对象:

也许在将来的某个时候,对象传播(尚未标准化):


您可以使用以下命令将所有属性从一个对象写入另一个对象:

也许在将来的某个时候,对象传播(尚未标准化):

你可以用这个

let arr2 = arr.map(x => {
      x.c = x.a + x.b;
      return x;
});
请同时参考工作片段

让arr=[{a:1,b:2},{a:3,b:6}];
设arr2=arr.map(x=>{
返回Object.assign({c:x.a+x.b},x);
});
控制台日志(arr);
控制台日志(arr2);
控制台日志(arr)您可以使用此

let arr2 = arr.map(x => {
      x.c = x.a + x.b;
      return x;
});
请同时参考工作片段

让arr=[{a:1,b:2},{a:3,b:6}];
设arr2=arr.map(x=>{
返回Object.assign({c:x.a+x.b},x);
});
控制台日志(arr);
控制台日志(arr2);

控制台日志(arr)尽管与其他答案的总体思路相同,但这可能更具可读性:

arr.map(({a, b}) => ({a, b, c: a + b}))

虽然与其他答案的总体思路相同,但这可能更具可读性:

arr.map(({a, b}) => ({a, b, c: a + b}))

美好的正是我所希望的德妮丝!正是我所希望的德索里。这将覆盖
arr
,:(对不起,这将覆盖
arr
,:(嗯,我喜欢这一个^ ^嗯,我喜欢这一个^_^