演算法 陣列去重

2022-07-14 13:36:33 字數 1128 閱讀 4606

1、實現目標:陣列去重

2、實現思路:

(1)建立新陣列。

(2)遍歷原陣列,判斷當前被遍歷元素是否存在於新陣列,如果存在於新陣列,則判斷當前被遍歷元素是重複的;如果不存在於新陣列,則判斷當前被遍歷元素不是重複的,則將其壓入新陣列。

(3)遍歷完畢原陣列後,返回新陣列。

3、具體實現:根據對當前元素是否重複的判斷方法不同,有四種不同的具體實現。

(1)利用hash表儲存被遍歷元素是否重複的狀態。

1

function

unique( arr ) , //

hash表,用於判斷元素是否已經壓入新陣列

3 r = ;

4for (var i = 0, length = arr.length; i < length; i++) ;

10};

11return

r;12 };

(2)利用indexof方法,判斷當前被遍歷元素是否在新陣列中。

1

function

unique( arr ) ;7}

8return

n;9 };

(3)利用當前被遍歷元素在原陣列第一次出現的位置與其索引是否相等判斷是否重複。

1

function

unique( arr ) ;8};

9return

n;10 };

(4)利用陣列的排序方法,先排序,利用排序後的陣列特性,亦即相同值的元素相鄰,來判斷是否重複。

1

function

unique( arr ) ;8};

9return

r;10 };

4、小結:

(1)基於陣列位置:

第二種,從當前元素是否出現在新陣列中判斷是否重複;

第三種,根據當前元素第一次出現的位置和當前被遍歷元素下標是否相等判斷是否重複;

(2)基於陣列分布:

第一種,建hash表,儲存陣列元素的分布狀態,遍歷陣列時,根據分布狀態判斷是否重複;

(3)基於陣列排序:

第四種,先對陣列排序,利用排序後,相同值陣列元素相鄰的特性,判斷元素是否重複。

陣列的indexOf方法 陣列去重

陣列的indexof方法 陣列方法大家再熟悉不過了,卻忽略了陣列有indexof這個方法 我個人感覺 乾說不練瞎扯淡,遇到了什麼問題,注意 點又在 let arr orange 2016 2016 arr.indexof orange 0arr.indexof o 1arr.indexof 2016...

陣列物件自帶的排序方法,陣列去重

1,陣列物件自帶的排序方法 array.sort 方法有面試官問到時如何實現的,實現的關鍵過程就是比較陣列中的每一項的首個字元 將整個字元轉換成string以後,將第乙個字元分離出來 2,陣列去重 陣列去重的關鍵思想是 當新陣列裡沒有要進來的新項時,那就放進新陣列裡,最後返回新陣列 3,偽陣列 符合...

陣列去重方法 陣列取最小值

2017年10月 1 arr.filter var arr 0,0,1,a 1,2,b a a var res arr.filter function ele,index,array document.write res 2 先排序再去重 function unique arr return res...