JavaScript数组去重的几种方法

112 阅读1分钟

1.双重循环找到重复的元素并删除

let arr = [1, 2, 6, 3, 7, 3, 2, 8, 9, 1, 5];

    function unique(arr) {

        for (var i = 0, len = arr.length; i < len; i++) {

            for (var j = i + 1, len = arr.length; j < len; j++) {

                if (arr[i] === arr[j]) {

                    arr.splice(j, 1);  //删除当前重复

                    j--;  

                    len--;                       

                }

            }

        }

        return arr;

    }

    console.log(unique(arr));  

    

2.ES6的新特性使用Set的特性

var arr = [12637328915];

    function unique(arr) {

        return Array.from(new Set(arr))

    }

    console.log(unique(arr));
    
    
    //console.log(...new Set(arr));

3.利用数组的includes去重

var arr = [12637328915];

                  function unique( arr ){

                      var arr1 = [];

                      for(var i=0,len=arr.length;i<len;i++){

                         if( !arr1.includes( arr[i] ) ){      

                             arr1.push(arr[i]);

                          }

                      }

                      return arr1;

                 }

                 console.log(unique(arr));

4.indexOf()去重

let arr = [12315636];


    function unique(arr) {

        let newArr = [];

        for (let i = 0; i < arr.length; i++) {

            if (newArr.indexOf(arr[i]) == -1) {

                newArr.push(arr[i]);

            }

        }

        return newArr;

    }

    console.log(unique(arr));