最近在刷题的时候遇到了好几次数组去重的问题,现在简单总结一下数组去重的几种方法。
1.使用set方法
<script>
let arr=[1,2,2,2,6,6,8,8,9]
let newarr=Array.from(new Set(arr))//注意set首字母大写哦,小写会报错
console.log(newarr)
</script>
2.双for循环+splice方法
let arr=[1,2,2,2,6,6,8,8,9]
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--
}
}
}
console.log(arr)
3.使用includes方法
let arr=[1,-2,2,2,6,6,8,-8,9]
let newarr=[]
for(let i=0;i<arr.length;i++){
if(!newarr.includes(arr[i])){
newarr.push(arr[i])
}
}
console.log(newarr)
4.sort方法,相邻元素对比
let arr=[1,3,1,0,6,6,2,2]
arr=arr.sort()//sort方法默认是升序,可以自己选择升序或降序
let newarr=[arr[0]]
for(let i=1;i<arr.length;i++){
if(arr[i]!==arr[i-1]){
newarr.push(arr[i])
}
}
console.log(newarr)
5.indexof()方法去重
let arr=[11,2,2,11,8,9,8,9]
let newarr=[]
for(let i=0;i<arr.length;i++){
if(newarr.indexOf(arr[i])===-1){
newarr.push(arr[i])
}
}
console.log(newarr)