JavaScript常见的数组去重

136 阅读1分钟

数组去重

ES6
//new Set
function unique(arr){
    return Array.from(new Set(arr))
}
function unique(arr){
    return [...new Set(arr)]
}
//filter
function unique(arr){
    if(!Array.isArray(arr)) return;
    return arr.filter(function(item,index,arr){
        return arr.indexOf(item,0) === index;
    })
}
//inculdes
function unique(arr){
    if(!Array.isArray(arr)) return;
    let result = [];
    for(let i=0;i<arr.length;i++){
        if(!result.inculdes(arr[i])){
            result.push(arr[i])
        }
    }
}
ES5
// indexOf
function unique(arr){
    if(!Array.isArray(arr)) return;
    let result = [];
    for (let i=0;i<arr.length;i++){
        if(result.indexOf(arr[i]) === -1){
            result.push(arr[i])
        }
    }
    return result;
}
//双层for splice
function unique(arr){
    for(let i=;i<arr.length;i++){
        for(let j=i+1;j<arr.length;j++){
            if(arr[i] == arr[j]){
                arr.splice(j,1)
                j--
            }
        }
    }
    return arr;
}