实现数组去重,取并集,交集,差集

809 阅读1分钟

数组去重

//1.利用set去重的特质
let arr=[1,2,3,4,1,3]
let new Arr=[...new Set(arr)]

//2.遍历数组,把数组的每个元素作为对象的key,然后拿到
function getNewArr(arr){
    let obj={}
    arr.forEach(item=>{
        if(!obj[item]){
         obj[item]=0 
        }
    })
    let keys=Object.keys(obj)
    //let newArr=[]
    //for(let k in obj){
    //    if(!obj.hasOwnProperty(k))break
    //    newArr.push(k)
    //}
    
    return [...keys]
}

数组取并集

    function all(arr1,arr2){
        let s1=new Set(arr1)
        let s2=new Set(arr2)
        return [...new Set([...s1,...s2])]
    }

数组取交集

    function connect(arr1,arr2){
        let s2=new Set(arr2)
        [...new Set(arr1)].filter(item=>{
            return s2.has(item)
        })
    }

数组取差集

    function minus(arr1,arr2){
         let s2=new Set(arr2)
        [...new Set(arr1)].filter(item=>{
            return !s2.has(item)
        })
    }