js最簡單陣列去重 JS中最簡單且最強大的陣列去重

2021-10-16 16:24:13 字數 1176 閱讀 3322

陣列去重的機制中必須要有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...