常见的数组去重方法

1、常用的方法,双层for循环,外层遍历数组,内层判断是否重复,效率较低

function unique(arr){
            for(var i = 0;i<arr.length;i++){
                for(var j = i+1;j<arr.length;j++){
                    if(arr[i]==arr[j]){
                        arr.splice(j,1);
                        j--;                        
                    }
                }
            }
            return arr;
        }
        console.log(unique(arr));

2、利用sort()方法进行排序

  function unique(arr){
            arr = arr.sort();
            let result = [arr[0]];
            for(var i = 1;i<arr.length;i++){
                arr[i] !== arr[i-1] && result.push(arr[i]);
            }
            return result;
        }
        console.log(unique(arr));

3、利用ES6中Set特性,基于Set的成员具有唯一性,该方法效率较高

  function unique(arr){
            return Array.from(new Set(arr));
        }
        console.log(unique(arr));

4、利用object属性不能相同特性去重

   function unique(arr) {
            let result = [];
            let obj = {};
            for (var i = 0; i < arr.length; i++) {
                if (!obj[arr[i]]) {
                    result.push(arr[i])
                    obj[arr[i]] = 1
                } else {
                    obj[arr[i]]++
                }
            }
            return result;
        }
        console.log(unique(arr));  
原文地址:https://www.cnblogs.com/zoutuan/p/11716549.html