1.最基本的去重方法
思路:定義一個新數組,並存放原數組的第一個元素,而後將元素組一一和新數組的元素對比,若不一樣則存放在新數組中。json
function unique(arr){數組
var res = [arr[0]];post
for(var i=1;i<arr.length;i++){測試
var repeat = false;對象
for(var j=0;j<res.length;j++){blog
if(arr[i] == res[j]){排序
repeat = true;io
break;function
}class
}
if(!repeat){
res.push(arr[i]);
}
}
return res;
}
2.先排序在去重
思路:先將原數組排序,在與相鄰的進行比較,若是不一樣則存入新數組
function unique(arr){
var arr2 = arr.sort();
var res = [arr2[0]];
for(var i=1;i<arr2.length;i++){
if(arr2[i] !== res[res.length-1]){
res.push(arr2[i]);
}
}
return res;
}
3.利用對象的屬性去重(推薦)
思路:每次取出原數組的元素,而後再對象中訪問這個屬性,若是存在就說明重複
function unique(arr){
var res =[];
var json = {};
for(var i=0;i<arr.length;i++){
if(!json[arr[i]]){
res.push(arr[i]);
json[arr[i]] = 1;
}
}
return res;
}
4.利用下標查詢
function unique(arr){
var newArr = [arr[0]];
for(var i=1;i<arr.length;i++){
if(newArr.indexOf(arr[i]) == -1){
newArr.push(arr[i]);
}
}
return newArr;
}
通過測試以上代碼沒有什麼問題,有問題請指正,謝謝。