我需要合并两个对象数组,我知道有很多方法可以做到,但我只是好奇最好的方法是什么。
例如 - 我有以下数组,
array1 :[{ id :1, name : a, class :c1}, {id :2, name :b, class :c2}]
array2 :[{ id:1, score :20}, {id:2, score :30}]
我想要的是
array3 :[{id :1, name :a, score :20}, {id:2, name:b, score: 30}]
编辑: 试过代码
for(var ind1 in array1){
for(var ind2 in array2){
if(array1[ind1].id == array2[ind2].id){
array1[ind1].score = array2[ind2].score;
}
}
}
array1为我提供了所需的数组
答案 0 :(得分:0)
我将如何做到这一点。我可能会添加一些其他条件来防止错误,如果id不匹配,但基本上这是校长。
array1 = [{ id :1, name : "a", class :"c1"}, {id :2, name :"b", class :"c2"}];
array2 = [{ id:1, score :20}, {id:2, score :30}];
var length1 = array1.length;
var length2 = array2.length
var array3 = [];
for( var i = 0; i < length1; i++){
joined = {id: array1[i].id, name: array1[i].name};
for(var j = 0; j < length2; j++){
if(array2[j].id == array1[i].id){ // Check if the id's match.
joined.score = array2[j].score; // If the match add score.
break;
}else{
continue; // If they don't move on.
}
array3[i] = joined; // Add to output array.
}
}
console.log(array3);
这是展示它的小提琴。