javascript - 将数组中的所有对象合并为一个

标签 javascript arrays object

我有一个对象数组 arr,我想将数组中的所有对象合并为一个。对象中还存在重复的键。我有办法做到这一点吗?任何帮助都会很棒。

var arr = [{ a: 1, a: 2 },
{ c: 1, d: 2 },
{ e: 14, f: 20 }];

我想要的输出是:

var arr = [{ a: 1, 
             a1: 2, 
             c: 1, 
             d: 2, 
             e: 14, 
             f: 20 }];

最佳答案

假设所有键都是唯一的并且您不想检查,请使用reduce

var combinedKeys = arr.reduce(function(a, item) {
    Object.keys(item).map(function(key) {
        a[key] = item[key];
    });

    return a;
}, {});

var singleArrayOfCombinedKeys = [combinedKeys]; //[Object  a: 1b: 2c: 1d: 2e: 14f: 20__proto__: Object]

关于javascript - 将数组中的所有对象合并为一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38249181/

相关文章:

javascript - Angular 4 中从一个组件到另一组件的数据

javascript - 获取 template.foo.rendered 中集合实例的 this._id

javascript - Extjs - 在窗口中显示树的最佳方式

javascript - 将测验问题存储在对象数组中

javascript - 如何在 Angularjs 应用程序中删除数组中的元素

python - 直接调用时返回值的实例(不是实例)

javascript - Access-Control-Allow-Origin 问题和 Angular $http 服务

javascript - 按小数分割数字并作为 2 个单独的元素返回

c++ - 如何恢复基类指针指向的对象的原始类型?

javascript - 在 Mootools 中将对象转换为哈希对象?