如何实现数组去重?

2018-01-13  本文已影响18人  joker731

假设有数组 array = [1,5,2,3,4,2,3,1,3,4]
你要写一个函数 unique,使得
unique(array) 的值为 [1,5,2,3,4]
也就是把重复的值都去掉,只保留不重复的值。

要求:不要做多重循环,只能遍历一次,请给出两种方案,一种能在 ES 5 环境中运行,一种能在 ES 6 环境中运行(提示 ES 6 环境多了一个 Set 对象)

方案一:

var array =[1,5,2,3,4,2,3,1,3,4]
function unique(ar) {
    var tmp = {},
        ret = [];

    for (var i = 0, j = ar.length; i < j; i++) {
        if (!tmp[ar[i]]) {
            tmp[ar[i]] = 1;
            ret.push(ar[i]);
        }
    }

  console.log(ret)
}
unique(array)

方案二:

var array = [1,5,2,3,4,2,3,1,3,4]
function unique(arr){
      return Array.from(new Set(arr))
  }
unique(array)
上一篇 下一篇

猜你喜欢

热点阅读