第一种:最简单 set 去重
let arr = [1,2,3,3,3,4,4,3,5,5]
let newArr = [...new Set(arr)]
console.log(newArr) // [1, 2, 3, 4, 5]
第二种:indexOf 判断去重
function unique(arr){
let newArr = []
for(let i in arr){
if(newArr.indexOf(arr[i])==-1){
newArr.push(arr[i])
}
}
return newArr
}
let arr = [1,2,3,3,3,4,4,3,5,5]
unique(arr) //[1, 2, 3, 4, 5]
第三种 双重for循环去重
let a = [1,2,3,3,3,4,4,3,5,5]
for(let i=0;i<a.length;i++){
for(let j=i+1;j<a.length;j++){
if(a[i]===a[j]){
a.splice(j,1);
j--;
}
}
}
console.log(a); //[1, 2, 3, 4, 5]
第四种:sort+for去重
function unique(arr){
if(!Array.isArray(arr)) return
arr.sort()
let newArr =[]
for(let i=0;i<arr.length;i++){
if(arr[i] !==arr[i-1]){
newArr.push(arr[i])
}
}
return newArr
}
let arr = [1,2,3,3,3,4,4,3,5,5]
unique(arr) //[1, 2, 3, 4, 5]
第五种:filter()+indexOf()方法
function unique(arr){
return arr.filter(item,index,arr){
return arr.indexOf(item,0)===index
}
}
let arr = [1,2,3,3,3,4,4,3,5,5]
unique(arr) //[1, 2, 3, 4, 5]