整数数组去重

133 阅读1分钟
let  a = [1,2,3,4,5,6,3,2,5,6,9,5,8,12,3,23,4,345]
let b = new Set(a)
b.add([222])
b.add(222)
// 两个对象总是不相等的
let c = Array.from(b)
let d = [...c]
console.log('--------bbbb----->',b,c,d);

// 利用Set 快速取得两个数组之间的交集,差集,并集

let aa =  new Set([1,4,7])
let bb =  new Set([4,3,8])

// 获取并集的数组
let cc = [...new Set([...aa,...bb])]
// 获取交集的数组
let dd = [...aa].filter(item=>bb.has(item))
// 获取差集的数组
let ee = cc.filter(item=>!(new Set(dd)).has(item))
let ff = 
console.log('----利用set作两个数组的交集,并集,差集------->',cc,dd,ee);

// 方法二: 利用map进行去重

function filterSameArray(arr1) {
    let a =  {}
    arr1.forEach(item=>{
        !a[item] && (a[item] = item)
    })
    return  Object.values(a)
}
let aaa = [1,2,3,4,5,2,23,4,562,,23,4,5]
let bbb = filterSameArray(aaa)
console.log('--------第三种方法map 表-------》',bbb);

// 方法四 利用reduce去进行筛选

let aaaa = [1,2,34,4,52,4,2,5,3,6,4,7,7,5]
let bbbb = aaaa.reduce((pre,next)=>{
    pre.indexOf(next) === -1 && pre.push(next)
    return pre
},[])
console.log('------->',bbbb,aaaa);