数组去重
1.用indexof
let arr = [1, 2, 3, 1, 2, 1, 2, 3, 2, 1, 2, 3];
// 用indexof
let newArr = []
for(let i = 0; i < arr.length;i++) {
if(newArr.indexOf(arr[i]) === -1)
newArr[i] = arr[i]
}
console.log(newArr)
2.用set
let newArr = [...new Set(arr)]
3.好点的方法
function unique(arr) {
let obj = {}
let i = 0
while (i < arr.length) {
if (obj[arr[i]]) {
arr[i] = arr[arr.length - 1]
arr.length--
continue
}
obj[arr[i]] = true
i++
}
}
- 利用一个对象来判断值是否已经存在
- 存在的话用数组最后一项提前到当前已存在的值,然后数组length--相当于删除了一个值
- 不存在的话 用当前值当obj的key且值设为true 并且判断下一个