1,常規雙迴圈去重(缺點:迴圈次數較多)
array.prototype.unique1 = function()
let that = object(this),len = that.length >>> 0;
let res = [that[0]];
for(let i = 1; i < len; i++)
} if(!falg)
} return res;
}
注意:
(1,必須在第二個迴圈外push到新的陣列
(2,減少迴圈次數,在第二個迴圈中找到相等值,馬上退出該迴圈
(3,每次迴圈對falg檢驗
(4,由於第一值直接賦值,所以不用檢測第乙個值
2,陣列的sort先排序再去重(缺點:返回陣列為排序後的順序)
array.prototype.unique2 = function()
let that = object(this).sort(),len = that.length >>> 0,res = [that[0]];
for(let i = 1; i < len; i++)
} return res;
}
3,物件鍵值不重複(缺點:佔記憶體)
array.prototype.unique3 = function()
let that = object(this),len = that.length >>> 0,obj = {},res = ;
for(let i = 0; i < len; i++)else if(obj[that[i]].indexof(type) === -1)
} return res;
}
4,indexof檢測新陣列(優點:簡單)
array.prototype.unique4 = function()
let that = object(this),len = that.length >>> 0,res = [that[0]];
for(let i = 1; i < len; i++)
} return res;
}
5,indexof檢測原陣列
array.prototype.unique5 = function()
let that = object(this),len = that.length >>> 0,res = [that[0]];
for(let i = 1; i < len; i++)
} return res;
}
6,陣列的every方法
array.prototype.unique6 = function()
let that = object(this),len = that.length >>> 0,res = [that[0]];
for(let i = 1; i < len; i++)))
} return res;
}
注意:如果發現了乙個這樣的元素,every 方法將會立即返回 false。否則,callback 為每乙個元素返回 true,every 就會返回 true。
7,陣列的some方法
array.prototype.unique10 = function()
let that = object(this),len = that.length >>> 0,res = [that[0]];
for(let i = 1; i < len; i++)))
} return res;
}
注意:如果找到了這樣乙個值,some 將會立即返回 true。否則,some 返回 false。
8,陣列的includes方法
array.prototype.unique7 = function()
let that = object(this),len = that.length >>> 0,res = [that[0]];
for(let i = 1; i < len; i++)
} return res;
}
9,陣列的filter方法
array.prototype.unique8 = function()
let that = object(this),len = that.length >>> 0,res = [that[0]];
for(let i = 1; i < len; i++)).length === 0)
} return res;
}
10,陣列的find方法(缺點:沒有做0或者false這個一類判斷)
array.prototype.unique9 = function()
let that = object(this),len = that.length >>> 0,res = [that[0]];
for(let i = 1; i < len; i++)))
} return res;
}
還有lastindexof,findindex等方法也能做去重,就不一一枚舉,有興趣的可以自己做一下。
其他[我的部落格,歡迎交流!](
[我的csdn部落格,歡迎交流!](
[前端筆記專欄](
[前端筆記列表](
[遊戲列表](
JS中陣列去重的九方法
陣列去重方法 方法一 運用set結構特點 儲存的資料沒有重複的,結果為物件,再用array.from 轉換成陣列 var arr 1,1,2,1,3,4,5 var set new set arr console.log array.from set 方法二 用es5新增的indexof 和push...
js陣列去重方法總結
暴力去重,利用迴圈每次判斷當前元素是否在陣列中別的地方出現過,此處不展開介紹 利用 es6 的 set 是不重複集合的特性 function reducerepeatbyset arr 利用object的key不能重複的特性 function reducerepeatbyobject arr let...
Js陣列去重方法總結
方法一 var arr 1,23,1,1,1,3,23,5,6,7,9,9,8,5 function removeduplicateditem arr return arr arr2 removeduplicateditem arr console.log arr console.log arr2 ...