JS对象数组去重,将两个对象数组中某个字段不同的对象组成一个新数组返回

需求

有以下两个对象数组,需要将 arr1 中和 arr2 不相同 id 的对象筛选出来,组成一个新数组返回

原始数据

const arr1 = [
	{
    
     id: 1, name: '泡泡哥', age: 18 },
	{
    
     id: 2, name: '胡老板', age: 16 },
    {
    
     id: 3, name: '瓜瓜龙', age: 22 },
    {
    
     id: 4, name: '小肥兔', age: 20 },
]

const arr2 = [
	{
    
     id: 2, name: '鸡鸡爆', age: 32 },
	{
    
     id: 4, name: '琦老板', age: 99 },
    {
    
     id: 5, name: '哈撒K', age: 99 },
]

期望数据

[
    {
    
     id: 1, name: '泡泡哥', age: 18 },
    {
    
     id: 3, name: '瓜瓜龙', age: 22 },
]

实现方法

方法一

const newArr= arr1.filter((item) => arr2.every((val) => val.id !== item.id))
console.log(newArr)

方法二

const newArr = arr1.filter((item) => !arr2.some((val) => val.id === item.id))
console.log(newArr)

方法三

const getId = arr2.map(item => item.id) 
const newArr = arr1.filter(item => !getId.includes(item.id))
console.log(newArr)

猜你喜欢

转载自blog.csdn.net/weixin_43417844/article/details/129945292
今日推荐