一、利用ES6 Set去重(ES6中最常用)
let arr = [1,2,1,3]
arr = [...new Set(arr)] // [1,2,3]
二、利用for嵌套for,然后splice去重(ES5中最常用)
let arr = [1, 3, 2, 4, 5, 3, 2, 1, 4, 6, 7, 7, 6, 6]
function deWeight(arr){
for(var i=0; i<arr.length; i++){
for(var j=i+1; j<arr.length; j++){
if(arr[i]==arr[j]){ //第一个等同于第二个,splice方法删除第二个
arr.splice(j,1);
j--;
}
}
}
return arr;
}
三、利用indexOf去重
let arr = [1, 3, 2, 4, 5, 3, 2, 1, 4, 6, 7, 7, 6, 6]
let arr1 = []
for(var i=0;i<arr.length;i++){
if(arr1.indexOf(arr[i]) === -1){
arr1.push(arr[i])
}
}
return arr1
四、利用sort()
let arr = [1, 3, 2, 4, 5, 3, 2, 1, 4, 6, 7, 7, 6, 6]
let arr1 = []
arr = arr.sort()
for(var i=0;i<arr.length;i++){
if(arr[i] !== arr[i-1]){
arr1.push(arr[i])
}
}
return arr1
五、利用includes
let arr = [1, 3, 2, 4, 5, 3, 2, 1, 4, 6, 7, 7, 6, 6]
let arr1 = []
arr = arr.sort()
for(var i=0;i<arr.length;i++){
if(!arr1.includes(arr[i])){//includes 检测数组是否有某个值
arr1.push(arr[i])
}
}
return arr1
六、利用filter
let arr = [1, 3, 2, 4, 5, 3, 2, 1, 4, 6, 7, 7, 6, 6]
arr.filter((item,index,arr)=>{
return arr.indexof(item,0) === index
})