Javascript 在不使用lodash的情况下合并具有条件的两个数组
我面临合并两个数组的问题。我有两个对象数组,第一个是prev,有旧值,另一个是更新值。我想让结果数组包含prev数组的所有对象,更新后的值在array next中,并且让对象在next数组中 例如:Javascript 在不使用lodash的情况下合并具有条件的两个数组,javascript,arrays,Javascript,Arrays,我面临合并两个数组的问题。我有两个对象数组,第一个是prev,有旧值,另一个是更新值。我想让结果数组包含prev数组的所有对象,更新后的值在array next中,并且让对象在next数组中 例如: var prev = [{id: 1, val: 'abc'}, {id: 2, val: 'pqr'}]; var next = [{id: 1, val: 'nextVal'}, {id: 3, val: 'xyz'}]; 期望 mergeOutput = [ {id: 1, val: '
var prev = [{id: 1, val: 'abc'}, {id: 2, val: 'pqr'}];
var next = [{id: 1, val: 'nextVal'}, {id: 3, val: 'xyz'}];
期望
mergeOutput = [
{id: 1, val: 'nextVal'}, // value is updated
{id: 2, val: 'pqr'},
{id: 3, val: 'xyz'}
]
注意:数组顺序无关紧要。您可以使用Map()
合并数组
var-prev=[{id:1,val:'abc'},{id:2,val:'pqr'}];
var next=[{id:1,val:'nextVal'},{id:3,val:'xyz'}];
var hash=newmap();
上一个concat(下一个).forEach(函数(obj){
set(obj.id,Object.assign(hash.get(obj.id)|{},obj))
});
var mergedArray=Array.from(hash.values());
console.log(mergedArray)代码>您可以使用Map()
合并数组
var-prev=[{id:1,val:'abc'},{id:2,val:'pqr'}];
var next=[{id:1,val:'nextVal'},{id:3,val:'xyz'}];
var hash=newmap();
上一个concat(下一个).forEach(函数(obj){
set(obj.id,Object.assign(hash.get(obj.id)|{},obj))
});
var mergedArray=Array.from(hash.values());
console.log(mergedArray)代码>