需求
有以下两个对象数组,需要将 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)