使用spread运算符组合未知数量的对象

时间:2018-01-17 22:24:22

标签: javascript

这就是我要做的事情。

假设我有一组像这样的对象:
    const arr = [ {a:1, b:2}, {c:3, d:4}, {e:5, f:6} ];

我试图将其转换为一个对象,如下所示:
    const obj = {a:1, b:2, c:3, d:4, e:5, f:6};

我知道我可以通过这样的传播操作符完成此操作:
    const obj = {...arr[0], ...arr[1], ...arr[2]};

但如果我不知道arr中有多少个物体怎么办?似乎必须有一种方法来遍历数组中的每个对象并且#34;传播"他们成为一个对象,但我似乎无法弄明白。

2 个答案:

答案 0 :(得分:2)

reduce在这里可以很好地运作:

const arr = [ {a:1, b:2}, {c:3, d:4}, {e:5, f:6}  ];

const obj = arr.reduce((combo, item) => {
    return {...combo, ...item};
}, {});

console.log(obj)

答案 1 :(得分:2)

将它传播到这样的分配中:



const arr = [ {a:1, b:2}, {c:3, d:4}, {e:5, f:6}  ];
const obj = Object.assign({}, ...arr);
console.log(obj); // {a:1, b:2, c:3, d:4, e:5, f:6}