JavaScript方法对数组元素去重

1. forEach函数 + indexOf方法

function removeDouble(arr){
    let ns = [];
    arr.forEach(function(item,index,array){
        if(arr.indexOf(item) == index){
            ns.push(item);
        }
    })
    
    return ns;
}

let a = [1,3,4,5,6,2,3,1,4,6,7,8,9,0,2,1,3];
let b = removeDouble(a);
console.log(b);

结果:
[1, 3, 4, 5, 6, 2, 7, 8, 9, 0]

2. for循环语句 + indexOf方法

function removeDouble(arr){
    let ns = [];
    for (let i = 0; i < arr.length; i++) {
        if(ns.indexOf(arr[i]) == -1){
            ns.push(arr[i]);
        }
    }
    
    return ns;
}

let a = [1,3,4,5,6,2,3,1,4,6,7,8,9,0,2,1,3];
let b = removeDouble(a);
console.log(b);

结果:
[1, 3, 4, 5, 6, 2, 7, 8, 9, 0]

3. filter函数方法

function removeDouble(arr){
    let ns = [];
    ns = arr.filter(function(item,index,array){
        return arr.indexOf(item) == index;
    });
    
    return ns;
}

let a = [1,3,4,5,6,2,3,1,4,6,7,8,9,0,2,1,3];
let b = removeDouble(a);
console.log(b);

结果:
[1, 3, 4, 5, 6, 2, 7, 8, 9, 0]

4. splice方法

function removeDouble(arr){
    for (let i = 0; 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;
}

let a = [1,3,4,5,6,2,3,1,4,6,7,8,9,0,2,1,3];
let b = removeDouble(a);
console.log(b);

结果:
[1, 3, 4, 5, 6, 2, 7, 8, 9, 0]

5. Set方法

function removeDouble(arr){
    let ns = [];
    let set = new Set(arr);
    ns = [...set];
    
    return ns;
}

let a = [1,3,4,5,6,2,3,1,4,6,7,8,9,0,2,1,3];
let b = removeDouble(a);
console.log(b);

结果:
[1, 3, 4, 5, 6, 2, 7, 8, 9, 0]

6. Set方法和Array.from方法

function removeDouble(arr){
    return Array.from(new Set(arr));
}

let a = [1,3,4,5,6,2,3,1,4,6,7,8,9,0,2,1,3];
let b = removeDouble(a);
console.log(b);

结果:
[1, 3, 4, 5, 6, 2, 7, 8, 9, 0]
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容