JavaScript数组去重的几种方式

原创
小哥 3年前 (2022-10-20) 阅读数 119 #js教程
文章标签 jsJavaScript
let arr = [1,1,"1","1",true,true,"true",{},{},"{}",null,null,undefined,undefined]

// 方法1
let uniqueOne = Array.from(new Set(arr)) console.log(uniqueOne)

// 方法2
let uniqueTwo = arr => {
    let map = new Map(); //或使用空对象 let obj = {} 该属性不能通过使用对象属性来重复。
    let brr = []
    arr.forEach( item => {
        if(!map.has(item)) { //如果它是一个物体,就判断它 !obj[item]
            map.set(item,true) //如果它是一个对象obj[item] =true 其他一样
            brr.push(item)
        }
    })
    return brr
}
console.log(uniqueTwo(arr))

//方法3
let uniqueThree = arr => {
    let brr = []
    arr.forEach(item => {
        // 使用indexOf 返回数组是否包含值。 返回-1 如果有,则返回下标
        if(brr.indexOf(item) === -1) brr.push(item)
        // 或者使用includes 返回数组是否包含值。 返回false 有就返回true
        if(!brr.includes(item)) brr.push(item)
    })
    return brr
}
console.log(uniqueThree(arr))

//方法4
let uniqueFour = arr => {                                         
     // 使用 filter 返回一组符合条件的
    let brr = arr.filter((item,index) => {
        return arr.indexOf(item) === index
    })
    return brr
}
console.log(uniqueFour(arr))
版权声明

所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除

热门