需求:arr1、arr2两个数组对象,根据其中的某个属性判断这个对象是否相同,相同则替换,合并成一个新的数组。
let person1 = [{id:1,name:'张三'},{id:2,name:'李四'}];
let person2 = [{id:3,name:'王五'},{id:2,name:'李四'}];
function filterArrar(arr1,arr2,targetText){
arr2.forEach(item=>{
let index = arr1.findIndex(e=>
e[targetText] == item[targetText]
)
if(index>-1){
arr1.splice(index,1,item)
}else{
arr1.push(item)
}
})
return arr1
}
let resultArr = filterArrar(person1,person2,'id')
console.log(resultArr)
结果:
[{
id: 1,
name: "张三"
},{
id: 2,
name: "李四"
},{
id: 3,
name: "王五"
}]