简单的数组去重

常规方法

最简单数组去重法

function uniq(array){
    var newArr = new Array; //一个新的临时数组
    for(var i = 0; i < array.length; i++){
        if(newArr.indexOf(array[i]) == -1){
            newArr.push(array[i]);
        }
    }
    return newArr;
}

上面的方法用到了indexOf,IE8之前版本不支持,可以改为

function uniq(arr) {
  let newArr = new Array, bool = true;
  for (var i = 0; i < arr.length; i++) {
    for (var j = 0; j < newArr.length; j++) {
        if (newArr[j] == arr[i]) bool = false;
    }
    if (bool) newArr.push(arr[i])
    bool = true;
  }
  return newArr
}

不过这两种方法会多占用一个内存空间,简化后可以这样写

function uniq(array){
    return array.filter((v,i,a) => {
        return a.indexOf(a[i]) == i
    })
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容