陣列去重方法及原理

2021-08-22 11:37:53 字數 1655 閱讀 2971

方法一:

<body

>

<script

>

function unique

(arr) ;

//建立objecj物件

var

unique

= ;for

(vari=

0;ilength; i

++)

}return

unique

;console

.log

(unique);}

script

>

body

>

如果obj裡有arr[i]這個屬性物件的話,程式就跳過,表示是重複的

否則,un

ique

.push(arr[i]);意思是往陣列放arr[i]

而obj[arr[i]]=1; 這裡就是設定屬性物件

的值 了,因為{}中都是key/value一一對應 的,所以要給它設值

方法二:

<body

>

<script

>

function

unique

(arr)

}if

(j

===

result

.length) }

return

result;}

script

>

body

>

r,同時建立結果陣列result

遍歷結果陣列result

如果result中有乙個元素等於arr[i],就退出迴圈

說明arr[i],是乙個重複的元素

遍歷結束

如果j等於result的length,就把arr[i],壓入陣列result

j等於result的length,說明遍歷到了最後,也就是沒有找到相同的元素

方法三:

<body

>

<script

>

function

unique

(arr)

}console

.log

(result);}

script

>

body

>

如果在結果陣列result中沒有找到arr[i],則把arr[i]壓入結果陣列result中

陣列去重方法

1 es6提供了新的資料結構set,它類似於陣列,但是成員的值是唯一的,沒有重複的值。let arr 1,2,5,2,3,4,1,2,3,5,4,1,2,3,2,1,1,1,asd 123 123 123 asd 1,true,true,false console.log new set arr 或...

陣列去重方法

雙迴圈去重 雙重 for 或 while 迴圈是比較笨拙的方法,它的實現原理很簡單 先定義乙個包含原始陣列第乙個元素的陣列,然後遍歷原始陣列,將原始陣列中的每個元素與新陣列的每個元素進行比較,如果不重複則新增到新的陣列中,最後返回新的陣列,其缺點是如果陣列長度很長,那麼將會非常消耗記憶體 funct...

陣列去重方法

1.使用原生的filter和indexof來進行過濾和篩選。var filtered data.filter function item,index 複製 使用filter的第三個引數繫結this的值 var filtered2 data.filter function item,index,sel...