JavaScript去重的几种常见方法:
1、利用for嵌套for,然后splice去重。
var array=[1,1,2,true,true,false,{},{},'北京','北京'];
function f2(a){
for(var i=0;i<a.length;i++){
for(var j=i+1;j<a.length;j++){
if(a[i]===a[j]){
array.splice(j,1);
j--
}
}
}
return a;
}
console.log(f2(array));
2、新建一新数组,遍历传入数组,值不在新数组就push进该新数组。
var array=[1,1,1,2,3,2,1,4,4,5,2,6];
console.log(array);
var a=[]
for(var i=0;i<array.length;i++){
if(a.indexOf(array[i])==-1){
a.push(array[i])
}
}
console.log(a);
3、set去重
var array=[1,1,2,true,true,false,{},{},'北京','北京'];
function f1(a){
return Array.from(new Set(a));
}
console.log(f1(array))
4、sort去重
var array=[1,1,2,true,true,false,{},{},'北京','北京'];
function f3(a){
if (!Array.isArray(a)) {
console.log('type error!')
return;
}
a = a.sort()
var arrry= [a[0]];
for (var i = 1; i < a.length; i++) {
if (a[i] !== a[i-1]) {
arrry.push(a[i]);
}
}
return arrry;
}
console.log(f3(array));
5、filter去重
var array=[1,1,2,true,true,false,{},{},'北京','北京'];
function f5(a){
return a.filter(function(item, index, a) {
return a.indexOf(item, 0) === index;
});
}
console.log(f5(array));
6、includes去重
var array=[1,1,2,true,true,false,{},{},'北京','北京'];
function f4(a){
if (!Array.isArray(a)) {
console.log('type error!')
return
}
var array =[];
for(var i = 0; i < a.length; i++) {
if( !array.includes( a[i]) ) {
array.push(a[i]);
}
}
return array
}
console.log(f4(array));