数组去重

Posted 好_快

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数组去重相关的知识,希望对你有一定的参考价值。

第一类 for 循环


    /* 双重for循环去重*/
    function func0(array) 
        const newArray = [];
        for (let i = 0; i < array.length; i++) 
            //1、第一层循环取出目标数组中的每一个元素itemOld
            const itemOld = array[i];
            let contain = false;
            for (let j = 0; j < newArray.length; j++) 
                //2、第二层循环取出新数组中的每一个元素itemNew
                const itemNew = newArray[j];
                //3、每个itemOld和每个itemNew逐一比较
                if (itemOld === itemNew) 
                    //4、如果相等则存在,中断第二层循环
                    contain = true;
                    break;
                
            
            //5、如果第二层循环执行完都没有中断则说明该元素不存在,则加入数组
            if (contain === false) 
                newArray.push(itemOld);
            
        
        return newArray;
    

第二类 数组方法

2.1 indexOf

    function func1(array) 
        const newArray = [];
        array.forEach((item) => 
            if (newArray.indexOf(item) === -1) 
                newArray.push(item);
            
        );
        return newArray;
    

2.2 includes

    function func2(array) 
        const newArray = [];
        array.forEach((item) => 
            if (newArray.includes(item) === false) 
                newArray.push(item);
            
        );
        return newArray;
    

第三类 借助新的数据结构

3.1 利用对象key唯一去重

    function func3(array) 
        const obj = [];
        array.forEach((item) => 
            obj[item] = item;
        );
        return Object.values(obj);
    

3.2 利用 Set 去重

    function func4(array) 
        const set = new Set(array);
        return [...set];
    

代码链接

参考链接

以上是关于数组去重的主要内容,如果未能解决你的问题,请参考以下文章

js数组如何去重?

数组去重三种方法

对象数组去重

Set 数组去重

js中数组去重方法总结

ES6 数组内对象去重