合并数组中的对象

Merge objects in arrays

本文关键字:对象 数组 合并      更新时间:2023-09-26

我有两个数组:

[{Name: "Jack", Depot: "5"}, {Name: "Jill", Depot: "6"}]

[{Depot Name: "Edgware"}, {Depot Name: "Romford"}]

我需要从第二个数组中取出对象,并将它们与第一个数组中的对象合并,以产生结果:

[{Name: "Jack", Depot: "5", Depot Name: "Edgware"}, {Name: "Jill", Depot: "6", Depot Name: "Romford"}]

如果有任何帮助,我将不胜感激

var array1 = [{
  Name: "Jack",
  Depot: "5"
}, {
  Name: "Jill",
  Depot: "6"
}];
var array2 = [{
  'Depot Name': "Edgware"
}, {
  'Depot Name': "Romford"
}];
for (var a in array1) {
  for (var p in array1[a]) {
    //to esclude all possible internal properties
    if (array1[a].hasOwnProperty(p)) {
	 array2[a][p] = array1[a][p];
    }
  }
}
console.log(array2);

下面是Object.assign()的解决方案。

p。S:检查浏览器兼容性,此解决方案可能无法在IE

中工作

var arr1 = [{
  "Name": "Jack",
  "Depot": "5"
}, {
  "Name": "Jill",
  "Depot": "6"
}];
var arr2 = [{
  "Depot Name": "Edgware"
}, {
  "Depot Name": "Romford"
}];
var arr1Copy = arr1;
var newArr = arr1Copy.map(function(v, i) {
  return Object.assign(v, arr2[i]);
});
console.log(newArr);