如何实现数组去重?

如何实现数组去重?
假设有数组 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 对象)

答案:

//  ES5:
var array = [1,5,2,3,4,2,3,1,3,4]
function unique(arr){
  var tempArr = []
  var hash = {}
  for(var i=0; i<arr.length; i++){
    if(hash[arr[i]] === undefined){
      tempArr.push(arr[i])
      hash[arr[i]] = 1
    }
  }
  return tempArr
}
console.log(unique(array))

//  ES6:
var arr = [1,5,2,3,4,2,3,1,3,4]
function unique(array) {
    return [...new Set(array)]
}
console.log(unique(arr))
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容