硬核乾貨來啦 Js陣列去重,趕快收藏吧

2021-09-27 12:18:10 字數 1077 閱讀 4147

本文為工具方法,提供簡單但常用的js方法函式。

本文內容來自不同的網友分享。

首先建立乙個空物件,然後用 for 迴圈遍歷

利用物件的屬性不會重複這一特性,校驗陣列元素是否重複

function

distinct

(a, b)

for(

let i of arr)

}return result

}

es6 新增了 set 這一資料結構,類似於陣列,但 set 的成員具有唯一性

基於這一特性,就非常適合用來做陣列去重了

function

distinct

(a, b)

首先使用 sort() 將陣列進行排序

然後比較相鄰元素是否相等,從而排除重複項

function

distinct

(a, b)

return result

}

雙重for迴圈的公升級版,外層用 for…of 語句替換 for 迴圈,把內層迴圈改為 includes()

先建立乙個空陣列,當 includes() 返回 false 的時候,就將該元素 push 到空陣列中

類似的,還可以用 indexof() 來替代 includes()

function

distinct

(a, b)

return result

}

最容易理解的方法,外層迴圈遍歷元素,內層迴圈檢查是否重複

當有重複值的時候,可以使用 push(),也可以使用 splice()

function

distinct

(a, b)}}

return arr

}

function

distinct

(a, b)

)}

JS陣列去重,物件去重

例項1根據indexof去重,indexof的好處就是返回的是首次出現的位置,這樣後面即使出現的值一樣,也只能返回第一次出現的索引,當然這個只適用於簡單的陣列 物件陣列去重 const objarr const obj const newobjarr for let i 0 i objarr.len...

js 陣列去重

function unique arr if isrepeated return result 建立乙個新的陣列,迴圈原有的陣列,每取乙個數就迴圈判斷新建的陣列中是否有和這個相等的值,沒有則插入。方法簡單,但是有雙重迴圈,陣列大了之後效率低。所以能一次迴圈解決最好。var str new array...

JS 陣列去重

我總共想出了三種演算法來實現這個目的 array.prototype.unique1 function return n array.prototype.unique2 function r n為hash表,r為臨時陣列 for var i 0 i this.length i 遍歷當前陣列 retu...