# 数组去重

# 简单的方法

# 思路

新建一新数组,利用indexOf判断是否存在于新数组中,不存在则push到新数组,最后返回新数组

# 缺点

IE8以下不支持数组的indexOf方法

uniq (arr) {
  let newArr = []
  arr.forEach(item => {
    if (newArr.indexOf(item) === -1) {
      newArr.push(item)
    }
  })
  return newArr
}
1
2
3
4
5
6
7
8
9

# 排序后相邻去除法

# 思路

先排序数组,之后比较相邻的两个元素,如果一样删除后面的

uniq (arr) {
  arr.sort()
  arr.forEach((item, index) => {
    if (item === arr[index + 1]) {
      arr.splice(index, 1)
    }
  })
  return arr
}
1
2
3
4
5
6
7
8
9