js数组去重

下面分享常用的几种JS数组去重方法

1、利用indexOf或者includes判断
注意:indexOf判断NaN会失效。即[NaN].indexOf(NaN) === -1为真

function unique1(arr){
    if (!Array.isArray(arr)) {
        console.log('type error!')
        return
    }
    var array = []
    for (var i=0;i

2、利用sort排序

function unique2(arr){
    if (!Array.isArray(arr)) {
        console.log('type error!')
        return
    }
    arr = arr.sort()
    var arrry= [arr[0]];
    for (var i = 1; i < arr.length; i++) {
        if (arr[i] !== arr[i-1]) {
            arrry.push(arr[i]);
        }
    }
    return arrry
}

3、利用filter+includes

function unique3(arr){
    if (!Array.isArray(arr)) {
        console.log('type error!')
        return
    }
    return arr.filter((item,index,arr)=>{
        return arr.includes(item) === index
    })
}

4、利用reduce+includes

function unique4(arr){
    return arr.reduce((prev,current)=>{
        return prev.includes(current) ? prev:[...prev,current]
    },[])
}

5、利用set

function unique5(arr){
    return [...new Set(arr)]
}

常用的方法主要就是这些,当然还有可以利用map存储健值不重复等特性,以及利用splice等api来做数组去重

你可能感兴趣的:(js语法,JS数组去重)