# 去除数组的重复成员

一、遍历数组arr,把元素分别放入另一个数组result中,判断arr中的元素在result中是否存在,不存在即加入result中

function unique(arr){
  var result = []
  for(var i in arr){
    if(result.indexOf(arr[i]) === -1){
      result.push(arr[i])
    }
  }
  return result
}

示例:

原数组:foo = [ 1, 2, 3, 4, 5, 4, 6, 66, 13, 2, 99 ]

var bar = unique(foo)

console.log(bar) => [ 1, 2, 3, 4, 5, 6, 66, 13, 99 ]

二、ES6 提供了新的数据结构 Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。使用这个特性可以为数组去重

let unique = [...new Set(array)]

示例:

let koo = [1, 2, 3, 4, 5, 4, 6, 66, 13, 2, 99]
let result = [...new Set(koo)]
console.log(result)
// [ 1, 2, 3, 4, 5, 6, 66, 13, 99 ]

三、或者

// 去除数组重复成员的另一种方法
Array.from(new Set(array))

示例:

let arr = [1, 2, 3, 4, 5, 4, 6, 66, 13, 2, 99]
let result = Array.from(new Set(arr))
console.log(result)
// [ 1, 2, 3, 4, 5, 6, 66, 13, 99 ]