合并2个JavaScript对象数组

时间:2016-04-05 09:00:28

标签: javascript arrays

假设我有2个对象数组,我想以并行方式合并它们的对象。 例如

var array = [{foo: 2} , {boo: 3}]
var array2 = [{foo2: 2}, {boo2: 4}]

结果将是

var array3 = [{foo:2,foo2:2},{boo:3,boo2:4}]

我怎样才能在javascript中完成?

3 个答案:

答案 0 :(得分:2)

您可能希望使用Array.prototype.mapObject.assign进行合并。

array.map((obj,index) => Object.assign(obj,array2[index]));

答案 1 :(得分:1)

你应该看一下lodash:

var users = {
  'data': [{ 'user': 'barney' }, { 'user': 'fred' }]
};

var ages = {
  'data': [{ 'age': 36 }, { 'age': 40 }]
};

_.merge(users, ages);
// → { 'data': [{ 'user': 'barney', 'age': 36 }, { 'user': 'fred', 'age': 40 }] }

Lodash doc for merge

答案 2 :(得分:1)

您可以遍历一个数组并选择一个项目,然后从另一个数组中选择项目,然后合并它们。

var array = [{foo: 2} , {boo: 3}];
var array2 = [{foo2: 2}, {boo2: 4}];

var _o = array.map(function(obj1, i){
  
  var obj2 = array2[i];
  for (var attrname in obj2) { obj1[attrname] = obj2[attrname]; }
  return obj1;

});

// _o is the final array

alert(JSON.stringify(_o));