当前位置: 首页 > 面试题库 >

将同一数组内的多个对象合并为一个对象[重复]

令狐建修
2023-03-14
问题内容

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

如何将其合并为一个obj?

//mergedObj = {a:1, b:2, c:3, d:4, e:5, f:6}

问题答案:

如果您的环境支持Object.assign,那么您可以像这样简洁地进行操作

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



console.log(arrObj.reduce(function(result, current) {

  return Object.assign(result, current);

}, {}));



// If you prefer arrow functions, you can make it a one-liner ;-)

console.log(arrObj.reduce(((r, c) => Object.assign(r, c)), {}));



// Thanks Spen from the comments. You can use the spread operator with assign

console.log(Object.assign({}, ...arrObj));

ES5解决方案:

您可以使用Array.prototype.reduce这样的

var resultObject = arrObj.reduce(function(result, currentObject) {
    for(var key in currentObject) {
        if (currentObject.hasOwnProperty(key)) {
            result[key] = currentObject[key];
        }
    }
    return result;
}, {});

console.log(resultObject);
# { a: 1, b: 2, c: 3, d: 4, e: 5, f: 6 }

此解决方案仅将的所有键及其值收集在中的每个对象中result,最终将结果返回给我们。

这张支票

if (currentObject.hasOwnProperty(key)) {

有必要确保我们在结果中不包括所有继承的可枚举属性。



 类似资料:
  • 本文向大家介绍写一个方法js将数组对象中某个属性值相同的对象合并成一个新对象相关面试题,主要包含被问及写一个方法js将数组对象中某个属性值相同的对象合并成一个新对象时的应答技巧和注意事项,需要的朋友参考一下 function Dog(name,age){ this.name=name; this.age=age; };

  • 问题内容: 假设我有一个像这样的数组 但我想将其转换为这样的对象: 能做到吗?我尝试过的所有方法都只会获得最后一个键值对。 问题答案: 如果您使用的是ES6或更高版本:

  • 本文向大家介绍js 将多个对象合并成一个对象 assign方法的实现,包括了js 将多个对象合并成一个对象 assign方法的实现的使用技巧和注意事项,需要的朋友参考一下 1.接下来介绍一下ES6在Object新加的方法  assign()   1.作用:将多个对象{}  合并成一个独立对象。  2.使用方式: Object.assign(合并的对象,传入合并中的对象....) 2.首先es6新增

  • 我有一个类似这样的数组: 我想要一个如下所示的结果对象: 我如何在Javascript中实现这一点?

  • 问题内容: 让我们看一个例子。 我需要合并这两个对象数组并创建以下数组: 有没有JavaScript或jQuery函数可以做到这一点? 不适合我 它返回 问题答案: 如果要在JavaScript中合并2个对象数组。你可以使用这一招 例如 输出:

  • 问题内容: 我可以使用通用的特定于Javascript / Coffeescript的习惯用法吗?主要出于好奇。 我有两个数组,一个数组由所需的键组成,另一个数组由所需的值组成,我想将其合并到一个对象中。 问题答案: var r = {}, i, keys = [‘one’, ‘two’, ‘three’], values = [‘a’, ‘b’, ‘c’];