JS 陣列去重

2021-10-05 10:43:30 字數 989 閱讀 7182

我們要將乙個陣列裡面的元素去重,核心演算法是:

新建乙個空陣列,將舊陣列裡面元素一一去查詢新陣列,如果該元素在新陣列裡沒有出現過,那我們就將其新增到新陣列裡,否則就不新增。

那麼我們怎麼判斷新陣列裡面有沒有存在該元素呢?

我們可以通過陣列索引的方式來查詢。

借助 indexof() 這個方法來實現。

方法名說明

返回值indexof()

在陣列中查詢給定元素的第乙個索引號(可能存在多個相同的元素)

如果存在,返回索引號;不存在,則返回-1

lastindexof()

在陣列中查詢給定元素的最後乙個索引號(可能存在多個相同的元素)

如果存在,返回索引號;不存在,則返回-1

var arr =[1

,4,2

,1,5

];console.

log(

indexof(1

));//0

console.

log(

lastindexof(1

));//3

console.

log(

indexof(3

));//-1

console.

log(

lastindexof(3

));//-1

我們由陣列索引可知,陣列.indexof(元素);該元素不存在於該陣列中,將返回-1。

則可以寫出以下陣列去重** :

var arr =[1

,4,5

,7,1

,8,7

,6];

var arr2 =

;for

(i =

0;i < arr.length;i++)}

console.

log(arr2)

;//[1,4,5,7,8,6]

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...