Javascript 基于公共属性合并对象数组
我需要合并两个对象数组,我知道有很多方法可以做到这一点,但我只是好奇什么是最好的方法 e、 我有以下数组Javascript 基于公共属性合并对象数组,javascript,object,merge,Javascript,Object,Merge,我需要合并两个对象数组,我知道有很多方法可以做到这一点,但我只是好奇什么是最好的方法 e、 我有以下数组 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}] 编辑: 试码
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为我提供了所需的数组,下面是我将如何做到这一点。如果id不匹配,我可能会添加一些其他条件以防止出现错误,但在basic中这是主要的
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);
array1=[{id:1,名称:“a”,类:“c1”},{id:2,名称:“b”,类:“c2”}];
array2=[{id:1,得分20},{id:2,得分30}];
var length1=阵列1.长度;
var length2=阵列2.length
var array3=[];
对于(var i=0;i
这是一把小提琴
“我想要的是”。。。你自己已经试过什么了?请发布你的代码。如果你已经知道怎么做,这不是stackoverflow的问题。相反,您应该在codereview.stackexchange.com上发布完成的代码。那个网站是为改进工作代码而设计的。我只是在寻找更好的方法。当前代码的复杂度为n*m。@credenson这将被视为“示例代码”,这与代码审查无关。这段代码中没有上下文。与此不同,CR不希望上下文被剥离。