在两个长度不同的数组对象中,取有相同属性的对象到一个新的数组

文章介绍了如何使用JavaScript的forEach和some方法,结合拓展运算符,从两个数组中找出值相同的对象并将其合并到新的数组arr3中,同时添加新的属性(interest)。
摘要由CSDN通过智能技术生成

这里有两个长度不同的数组对象

我们需要将其中某个值相同的对象放入到一个新的数组中,并且添加一些新的属性
那么我们可以使用 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: '篮球'}]

当我们需要去重,只需修改判断条件就可以达到效果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值