1. indexOf —>超级简单的啦
var arr = [1, 1, 2, 2, 4, 4, 5, 2, 2, 1, 2, 3, 3, 3, 2]
function uniqueArr(array){
return array.filter(function(item,index){
return array.indexOf(item)==index
})
}
console.log(uniqueArr(arr))
2. forEach —>非常简单的啦
var arr = [1, 1, 2, 2, 4, 4, 5, 2, 2, 1, 2, 3, 3, 3, 2]
function uniqueArr(array){
var _arr=[]
array.forEach(item => {
if(_arr.indexOf(item)==-1){
_arr.push(item)
}
});
return _arr
}
console.log(uniqueArr(arr))
3. sort —>无脑写法
var arr = [1, 1, 2, 2, 4, 4, 5, 2, 2, 1, 2, 3, 3, 3, 2]
function uniqueArr(array){
var _arr=[]
array.sort()
for(let i=0;i<array.length;i++){
if(array[i]!==array[i+1]) {
_arr.push(array[i])
}
}
return _arr
}
console.log(uniqueArr(arr))
4. includes -->可与indexOf比较下
var arr = [1, 1, 2, 2, 4, 4, 5, 2, 2, 1, 2, 3, 3, 3, 2]
function uniqueArr(array){
var _arr=[]
array.forEach(function(item){
if(!_arr.includes(item)){
_arr.push(item)
}
})
return _arr
}
console.log(uniqueArr(arr))
sort + reduce 开始幼升小学
var arr = [1, 1, 2, 2, 4, 4, 5, 2, 2, 1, 2, 3, 3, 3, 2]
function uniqueArr(array){
return array.sort().reduce((prev,item)=>{
if(prev.length===0||prev[prev.length-1]!==item){
prev.push(item)
}
return prev
},[])
}
console.log(uniqueArr(arr));