JS陣列去重的三種方法

2022-03-10 03:36:52 字數 1034 閱讀 1618

在程式中,通常解決乙個問題的方法有很多種。當然這些不同思路的解決方法,在效能和效率上也有很大差異。

以下是數字去重的三種方法,

一、迴圈遍曆法(傳統思路)

最簡單粗暴的演算法,新建乙個空陣列,然後遍歷原陣列,將不在新陣列中的項新增到新陣列,最後返回新陣列

function

compare(arr)//

如果當前原陣列中的項,在新陣列中存在,則標記為『不新增』,並跳出新陣列遍歷

}

if(isadd)//

若標記為『新增』(即遍歷新陣列後,沒有發現相同項),則新增進新陣列

}

return newarr;//

返回新陣列

}

二、排序比較法(巧妙轉換)

相對第一種方法,需要每次遍歷新舊兩個陣列,效率不高的情況。此方法先對原陣列進行排序,這樣每次只要與新陣列的最後一項比較即可,大大提高效率

function

sortarr(arr)//

若當前項與新陣列最後一項不同,這新增到新陣列

}

return newarr;//

返回新陣列

}

三、物件屬性法(另闢新徑)

相對前兩種方法通過比較的方式,此方法主要利用了物件屬性(key值)不可重複的特性,將陣列中各項賦值給乙個新物件,重複將自動覆蓋。最後從物件上遍歷出屬性即可。

function

attribute(arr);//

新建空物件

var newarr=;//

新建空陣列

for(var i=0; inull;}//

將原陣列項作為物件的key進行賦值

for( var attr in obj)//

遍歷物件,取出key值新增到新陣列

return newarr;//

返回新陣列

}

js陣列去重的三種方法

1.利用陣列操作方法splice實現陣列去重 var arr 1 2,2 3,3 3,4 4,5 6,6 7,7 7,8 8,9 function newarr arr return arr console.log newarr arr 返回結果 1 2,3 4,5 6,7 8,9 2.利用inde...

js陣列去重的三種方法

此方法是比較常用的方法之一,也是es5中比較實用的方法之一。話不多說,上 function newarr arr return arr var arr 1 1,2 5,6 3,5 5,6 8,9 8 console.log newarr arr 此方法也是es5中比較簡單的方法之一,基本思路是新建乙...

js中陣列去重的三種方法

陣列去重的三種方法 1 利用es6中 set型別實現陣列去重。let arr 1,2,1,2,3,1,4,1 2 1 3 console.log new set arr 1,2,3,4,1 2 3 2 新建乙個空陣列,然後迴圈之前的陣列,判斷每一項是否新陣列裡面,不存在的話push到新陣列裡面。le...