1、Set去重
var arr = [1,2,2,4,3,4,1,3,2,7,5,6,1]
var newArr = new Set(arr); // { 0:1, 1:2, 2:4, 3:3, 4:7, 5:5, 6:6 }
2、indexOf
function fn( arr ){
let newArr = [];
arr.forEach( (val)=>{
if ( newArr.indexOf(val) == -1 ){
newArr.push( val );
}
} );
return newArr;
}
3、普通去重
var arr = [1,2,2,4,3,4,11,3,2,7,5,6,1];
for( var i=0;i<arr.length;i++ ){
for( var j=i+1;j<arr.length;j++ ){
if ( arr[i]==arr[j] ){
arr.splice(j,1);
}
}
}
4、键值去重
function fn( arr ){
let arr1 = [],
arr2 = [];
arr.forEach( (val)=>{
arr1[ val ] = val;
} );
// arr1数组会存在空的情况
// 所以返回arr2
arr1.forEach( (val)=>{
if (!!val){
arr2.push( val );
}
} );
return arr2;
}
5、sort排序后去重
function fn( arr ){
let newArr = [];
arr.sort( (a,b)=>{
return a-b;
} );
arr.forEach( (val, index)=>{
if ( val != arr[index+1] ){
newArr.push(val);
}
} );
return newArr;
}
[1,2,2,4,3,4,1,3,2,7,5,6,1]
原文:https://www.cnblogs.com/sunww/p/11347332.html