这里有两个长度不同的数组对象
我们需要将其中某个值相同的对象放入到一个新的数组中,并且添加一些新的属性
那么我们可以使用 forEach + some 方法来处理
let arr = [{name:"张三",value:"zhangsan"},{name:"李四",value:"lisi"},{name:"王五",value:"wangwu"},{name:"赵四",value:"zhaosi"}]
let arr2 = [{name:"李四",value:"lisi",interest:"足球"},{name:"王五",value:"wangwu",interest:"篮球"},{name:"李谋",value:"limou",interest:"乒乓球"}]
// 定义一个空的数组,用来接收重复的对象
let arr3 =[]
// 循环其中一个较长的数组
arr.forEach(item1=>{
// 对较短的数组使用 some 方法来与第一个数组进行对比
arr2.some(item2=>{
if( item2.value == item1.value ){
arr3.push({
...item1, // ...是拓展运算符,会展开(浅拷贝)item1中的内容
interest:item2.interest
})
}
})
})
console.log(arr3) // [{name: '李四', value: 'lisi', interest: '足球'},{name: '王五', value: 'wangwu', interest: '篮球'}]
当我们需要去重,只需修改判断条件就可以达到效果