数组去重是面试中经常问到的问题,也是一个合格的前端必须掌握的知识。我总结了这三种常用的方法。
var arr=[1,3,4,5,5,4,3,6];
1.使用ES5中的indexOf进行去重:
function arr1(){
var n=[];
for(var i=0;i<arr.length;i++)
if(n.indexOf(arr[i])==-1){
n.push(arr[i]);
}
}
return n;
}
//先定义一个空数组,然后遍历数组,使用indexOf检查是否含有重复元素,如果没有则插入到n中。使用此类方法应考虑ES5的兼容性问题。
2.先排序后然后再相邻比较去重
function fun(){
arr.sort();
var arr1=[arr[0]];
for(var i=1;i<arr.length;i++){
if(arr[i]!==arr1[arr1.length-1]){
re.push(arr[i]);
}
}
return arr1;
}
//先将原数组排序,在与相邻的进行比较,如果不同则存入新数组
3.最基本的去重方法:
function fun(arr){
var arr1 = [arr[0]];
for(var i=1;i<arr.length;i++)
var repeat = false;
for(var j=0;j<arr1.length;j++)
if(arr[i] == res[j]){
repeat = true;
break;
}
}
if(!repeat){
arr1.push(arr[i]);
}
}
return arr1;
}
//定义一个新数组,并存放原数组的第一个元素,然后将元素组一一和新数组的元素对比,若不同则存放在新数组中。
网友评论