js陣列去重的三種常用方法總結

2022-09-18 04:51:23 字數 1289 閱讀 1478

js陣列去重的三種常用方法總結

第一種是比較常規的方法

思路:

1.構建乙個新的陣列存放結果

2.for迴圈中每次從原陣列中取出乙個元素,用這個元素迴圈與結果陣列對比

3.若結果陣列中沒有該元素,則存到結果陣列中

複製**

**如下:

array.prototype.unique1 = function()

}if(!repeat)

}return res;

}var arr = [1, 'a', 'a', 'b', 'd', 'e', 'e', 1, 0]

alert(arr.unique1());

第二種方法比上面的方法效率要高思路:

1.先將原陣列進行排序

2.檢查原陣列中的第i個元素 與 結果陣列中的最後乙個元素是否相同,因為已經排序,所以重複元素會在相鄰位置

3.如果不相同,則將該元素存入結果陣列中

複製**

**如下:

array.prototype.unique2 = function()

}return res;

}var arr = [1, 'a', 'a', 'b', 'd', 'e', 'e', 1, 0]

alert(arr.unique2());

第二種方法也會有一定的侷限性,因為在去重前進行了排序,所以最後返回的去重結果也是排序後的。如果要求不改變陣列的順序去重,那這種方法便不可取了。

第三種方法(推薦使用)

思路:

1.建立乙個新的陣列存放結果

2.建立乙個空物件

3.for迴圈時,每次取出乙個元素與物件進行對比,如果這個元素不重複,則把它存放到結果陣列中,同時把這個元素的內容作為物件的乙個屬性,並賦值為1,存入到第2步建立的物件中。

說明:至於如何對比,就是每次從原陣列中取出乙個元素,然後到物件中去訪問這個屬性,如果能訪問到值,則說明重複。

複製**

**如下:

array.prototype.unique3 = function();

for(var i = 0; i < this.length; i++)

}return res;

}var arr = [112,112,34,'你好',112,112,34,'你好','str','str1'];

alert(arr.unique3());

js陣列去重的三種常用方法總結

本篇文章主要是對js陣列去重的三種常用方法進行了總結介紹,需要的朋友可以過來參考下,希望對大家有所幫助 第一種是比較常規的方法 思路 1.構建乙個新的陣列存放結果 2.for迴圈中每次從原陣列中取出乙個元素,用這個元素迴圈與結果陣列對比 3.若結果陣列中沒有該元素,則存到結果陣列中 複製 如下 ar...

js陣列去重的三種常用方法總結

第一種是比較常規的方法 思路 1.構建乙個新的陣列存放結果 2.for迴圈中每次從原陣列中取出乙個元素,用這個元素迴圈與結果陣列對比 3.若結果陣列中沒有該元素,則存到結果陣列中 array.prototype.unique1 function if repeat return res var ar...

js陣列去重的三種常用方法總結

第一種是比較常規的方法 思路 1.構建乙個新的陣列存放結果 2.for迴圈中每次從原陣列中取出乙個元素,用這個元素迴圈與結果陣列對比 3.若結果陣列中沒有該元素,則存到結果陣列中 array.prototype.unique1 function if repeat return res var ar...