js 两个对象数组找出不同/相同的对象

js 两个对象数组找出不同/相同的对象

注:方法不止一种且多变这里只提供简洁的方法

let arr1 = [
	{  id:1, name:'aaa' },
	{  id:2, name:'bbb' },
]

let arr2 = [
	{  id:1, name:'aaa' },
	{  id:2, name:'bbb' },
	{  id:3, name:'ccc' },
]

//找出不同的对象元素
let differentArr = arr2.filter(item =>{ !arr1.some(v => v.id === item.id )})
//结果 differentArr 
// [{  id:3, name:'ccc' }]


//找出相同的对象元素
let sameArr = arr2.filter(item =>{ arr1.some(v => v.id === item.id )})
//结果 sameArr 
// [{  id:1, name:'aaa' },{  id:2, name:'bbb' },]
找出两个对象数组中id不同的元素,可以使用JavaScript的一些内置方法和循环来实现。 首先,假设我们有两个对象数组arr1和arr2,每个数组包含多个对象,每个对象有一个id属性。 我们可以使用循环遍历arr1中的每个对象,并用每个对象的id属性与arr2中的每个对象的id属性进行比较。如果找到一个id不同对象,则将该对象添加到一个新的数组中。 具体步骤如下: 1. 创建一个新的空数组,用于存放id不同的元素。 2. 使用forEach()方法遍历arr1中的每个对象。 3. 在forEach()方法的回调函数中,使用find()方法在arr2中查找具有相同id的对象。 4. 如果find()方法返回undefined,则表示在arr2中未找到相同id的对象,将当前对象添加到新的数组中。 5. 最后,返回新的数组,其中包含id不同的元素。 以下是用代码实现上述步骤的例子: ```javascript function findDifferentElements(arr1, arr2) { let differentElements = []; arr1.forEach((obj1) => { const isDifferent = !arr2.find((obj2) => obj2.id === obj1.id); if (isDifferent) { differentElements.push(obj1); } }); return differentElements; } ``` 这样,调用`findDifferentElements(arr1, arr2)`将返回一个包含id不同的元素的数组。 请注意,以上代码假设arr1和arr2中的每个对象包含一个id属性,且具有相同的属性名称。如果属性名称不同,需要相应地修改代码中的比较条件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值