JS 數組去重的四種方法
1、通過遍歷原數組和新數組是否重復。new一個新數組存放已經遍歷過的、唯一的元素。
function uniqueArr(list){
var newArr= [list[0]];
for(var i=1;i<list.length;i++){
var isRepeat = false;
for(var j=0;j<newArr.length;j++){
if(list[i] == newArr[j]){
isRepeat= true;
break;
}
}
if(!isRepeat){
newArr.push(list[i]);
}
}
return newArr;
}
var arr=[‘a‘,‘b‘,‘c‘,‘a‘,‘b‘];
uniqueArr(arr); //output:["a", "b", "c"]
2、通過先排序,再與相鄰的元素進行比較去重(排序之後相同的元素會相鄰)
function uniqueArr(list){
list.sort();//對數組進行排序
var newArr= [];
for(var i=1;i<list.length;i++){
if(list[i]!=list[i+1]) newArr.push(list[i]);
}
return newArr;
}
var arr=[‘a‘,‘b‘,‘c‘,‘a‘,‘b‘];
uniqueArr(arr); //output:["a", "b", "c"]
3、新建一個對象進行存放,再遍歷數組,判斷對象是否存在該值(obj[i])
function uniqueArr(list){
var obj= {},newArr=[list[0]];
obj[list[0]]=true;
for(var i=1;i<list.length;i++){
if(!obj[list[i]]){
obj[list[i]]=true;
newArr.push(list[i]);
}
}
return newArr;
}
var arr=[‘a‘,‘b‘,‘c‘,‘a‘,‘b‘];
uniqueArr(arr); //output:["a", "b", "c"]
4、通過indexOf進行判斷(新建一個數據存放唯一的元素,遍歷原數組判斷(newArr.indexOf(oldArr[i])==-1))
function uniqueArr(list){
var newArr=[list[0]];
for(var i=1;i<list.length;i++){
if(newArr.indexOf(list[i])==-1){
newArr.push(list[i]);
}
}
return newArr;
}
var arr=[‘a‘,‘b‘,‘c‘,‘a‘,‘b‘];
uniqueArr(arr); //output:["a", "b", "c"]
JS 數組去重的四種方法