es6

Array.from 从一个类似数组或可迭代对象创建一个新的,浅拷贝的数组实例

        var arr = [1, 1, 3, 4, 3]
        function unique(arr) {
            return Array.from(new Set(arr))
        }
        console.log(unique(arr))

新数组存放

// 最简单数组去重法
/*
* 新建一新数组,遍历传入数组,值不在新数组就push进该新数组中
* IE8以下不支持数组的indexOf方法
* */
function uniq(array){
    var temp = []; //一个新的临时数组
    for(var i = 0; i < array.length; i++){
        if(temp.indexOf(array[i]) == -1){
            temp.push(array[i]);
        }
    }
    return temp;
}

var aa = [1,2,2,4,9,6,7,5,2,3,5,6,5];
console.log(uniq(aa));

利用对象或者Map,增加额外空间

      function unique(arr) {
        const res = []
        const map = {}
        for (let i = 0; i < arr.length; i++) {
          if (!map[arr[i]]) {
            map[arr[i]] = true
            res.push(arr[i])
          }
        }
        return res
      }

渣渣辉
1.3k 声望147 粉丝