ES6扩展以合并数组中的对象

时间:2019-05-15 06:57:39

标签: javascript ecmascript-6

如何使用ES6 Spread运算符合并数组中的对象?假设我们有这样的对象:

maven-metadata.xml

和该对象的结果:

    let arr = [{ a: 1, b: true }, { c: "val", d: null }];

2 个答案:

答案 0 :(得分:0)

您可以将元素散布到Object.assign中,而无需进一步循环。

let arr = [{ a: 1, b: true }, { c: "val", d: null }],
    result = Object.assign({}, ...arr);

console.log(result);

答案 1 :(得分:-1)

Array.prototype.reduce()函数(docs here)。

let arr = [{ a: 1, b: true }, { c: "val", d: null }];
let obj = arr.reduce((accumulator, current) => ({...accumulator, ...current}), {});
console.log(obj);

与往常一样,使用箭头函数返回对象文字,不要忘记用(...)这样的反义词({...accumulator, ...current})包装返回值,以区分代码块和对象文字({{3 }}。