我见过_.zip根据索引合并两个列表,但我希望按键合并。这两个列表不一定是排序/索引的,但具有相同数量的对象
例如
{{1}}合并看起来像是:
{{1}}
答案 0 :(得分:0)
您可以像这样比较和合并。虽然它不是通用的,但它可以适用于您的情况
list1 = [{id:"1", field1:"field1val"},{id:"2", field1:"abc"}]
list2 = [{id:"1", field2:"field2val"}]
for(var i=0; i<list2.length; i++){
for(var j=0; j<list1.length; j++){
if(list1[j].id === list2[i].id){
list1[j].field2 = list2[i].field2
}
}
}
console.log(list1)
更好的解决方案就是这样,即使有更多属性
,它也会完全组合对象(Union)
list1 = [{id:"1", field1:"field1val"},{id:"2", field1:"abc"}]
list2 = [{id:"1", field2:"field2val"}]
for(var i=0; i<list2.length; i++){
for(var j=0; j<list1.length; j++){
if(list1[j].id === list2[i].id){
Object.assign(list1[j],list2[i]) // to union two objects
}
}
}
console.log(list1)