1.1.遍歷數組法
最簡單的去重方法, 實現思路:新建一新數組,遍歷傳入數組,值不在新數組就加入該新數組中;注意點:判斷值是否在數組的方法“indexOf”是ECMAScript5 方法,IE8以下不支持
// 判斷瀏覽器是否支持indexOf ,indexOf 為ecmaScript5新方法 IE8以下(包括IE8, IE8只支持部分ecma5)不支持
if (!Array.prototype.indexOf){
// 新增indexOf方法
Array.prototype.indexOf = function(item){
var result = -1, a_item = null;
if (this.length == 0){
return result;
}
for(var i = 0, len = this.length; i < len; i++){
a_item = this[i];
if (a_item === item){
result = i;
break;
}
}
return result;
}
}
2.3.數組下標判斷法
還是得調用“indexOf”性能跟方法1差不多,實現思路:如果當前數組的第i項在當前數組中第一次出現的位置不是i,那么表示第i項是重復的,忽略掉。否則存入結果數組。
雖然原生數組的"sort"方法排序結果不怎么靠譜,但在不注重順序的去重里該缺點毫無影響。
實現思路:給傳入數組排序,排序后相同值相鄰,然后遍歷時新數組只加入不與前一值重復的值。
實現思路:獲取沒重復的最右一值放入新數組。(檢測到有重復值時終止當前循環(huán)同時進入頂層循環(huán)的下一輪判斷)