数组常见的去重方式
let arr = [3, 2, 5, 2, 6, 7, 8, 9]
1,es6新语法
Array.from(new Set(arr))
或者 [...new Set(arr)]
(数组解构)
2,splice
for (let i = 0; i < arr.length; i++) {
//第一项和第二项比较
for (let j = i + 1; j < arr.length; j++) {
if (arr[i] == arr[j]) {
arr.splice(j, 1); //如果当前项和下一项相同删除下一项
j--; //j需要减1,上面执行的这一步会删除元素,数组整体前移一项,index-1,如果不减就会将arr[j]后面的元素漏掉了
}
}
}
3,indexOf
let newArr = []
for (let i = 0; i < arr.length; i++) {
if (newArr.indexOf(arr[i]) < 0) {
//如果新数组里面不包含当前循环的元素,那么就push进去
newArr.push(arr[i])
}
}
4,while
let index=0
arr=arr.sort() //排序
while(arr[index]){ //条件
if(arr[index] != arr[index+1]){ // 当前项和后面项不相等,继续循环
index ++
}else{ //删除下一项
arr.splice(index+1,1)
}
}
结果: [2, 3, 5, 6, 7, 8, 9]
还有很多方式可以去重,要是有更好的方式给我分享一下哦