JavaScript:获取两对数组的交集

2022-11-18 周五

给定两个数组,编写一个函数来计算它们的交集
let nums1 = [{id:1},{id:2},{id:3}]
let nums2 = [2,2]
  • Set:Set中的元素只会出现一次
  • filter:返回筛选后的新数组
方法一:Set

利用 Set去除本身的重复,然后合并

let intersection = (arr1,arr2) =>{
    let res = []
    let a1 = new Set(arr1)
    let a2 = new Set(arr2)
    a1.forEach(item => {
        if(a2.has(item.id)){
            res.push(item)
        }
    })
    return res
}
console.log('intersection : ', intersection(nums1,nums2)) // [{id:2}]
方法二:filter
let intersection = (arr1,arr2) =>{
    let a1 = new Set(arr1)
        let a2 = new Set(arr2)
        return [...a1].filter(item => a2.has(item.id))
    }
console.log('intersection : ', intersection(nums1,nums2)) // [{id:2}]

嘿嘿,这样写比for循环省事多了不是么。(~ ̄▽ ̄)~

你可能感兴趣的:(JavaScript:获取两对数组的交集)