陣列去重的機制中必須要有2次迴圈,但,這並不意味著必須要有若干for迴圈的顯性**,通過陣列的自身的方法,可以大大簡化**;下面就是我寫的最簡單且最強大的陣列去重方法:
目錄一、最簡單的陣列去重
二、最簡單且最強大的陣列去重
內容一、最簡單的陣列去重
方案1:通過set
[...new set(array)]
方案2:通過陣列
let norepeats = arr.filter((item,index)=>);
簡化後的箭頭函式可能會讓人不易懂,下面是等效的非箭頭函式版:
let norepeats = arr.filter(function(item,index) ,我們可以會根據 id 是否一致來判斷是否重複;
下面的去復方法支援自定義的重複規則:
根據重複測試函式 `isrepeated` 來獲取去除重複專案後的新陣列
- @param isrepeated : (item1,item2)=> boolean 重複油測試函式,傳入被測試的2個專案,返回布林值,表示這2個專案是否是重複的;
- @returns : array 返回去除重複專案後的新陣列
## 注意
- 該方法不改原陣列,會返回乙個新的陣列;
- 該方法是通過 isrepeated 函式來判斷 陣列的元素是否重複的;
array.prototype.getnorepeatsuserepeattest = function (isrepeated){
return this.filter(function(currentitem,index,arr){
return index === arr.findindex(function(finditem){
return isrepeated(finditem,currentitem);
方法 getnorepeatsuserepeattest(isrepeated) 是根據重複測試函式 isrepeated 來獲取去除重複專案後的新陣列; 測試函式 isrepeated 是 (item1,item2)=> boolean 型別的,即: isrepeated(item1,item2) 會接收2個元素作為引數,返回乙個表示這2個元素是否是重複的布林值;
注意:該方法不改原陣列,會返回乙個新的陣列;
該方法是通過 isrepeated 函式來判斷 陣列的元素是否重複的;
原 js陣列物件去重最簡單的方法
簡單的陣列去重是比較簡單的,方法也特別多,如給下面的陣列去重 let arr 1,2,2,4,9,6,7,5,2,3,5,6,5 最常用的可以用for迴圈套for迴圈,再用splice刪除重複的陣列 let arrunique function arr return arr 然而陣列的子集為物件時,...
最簡單的陣列去重方式
去除陣列的重複成員 newset array 一行 全部解決,原理 使用es6提供的新的資料結構 set。它類似於陣列,但是成員的值都是唯一的,沒有重複的值。特點 簡單 可以去重nan 精確相等運算子 認為nan不等於自身,而在set內部,連nan都是相等的,所以陣列中的nan都能去重,原因是set...
js 陣列去重
function unique arr if isrepeated return result 建立乙個新的陣列,迴圈原有的陣列,每取乙個數就迴圈判斷新建的陣列中是否有和這個相等的值,沒有則插入。方法簡單,但是有雙重迴圈,陣列大了之後效率低。所以能一次迴圈解決最好。var str new array...