數組快速去重(js去除數組中的重復項) 今天小豆培訓網學歷教育小編就來給大家簡單介紹一下。
數組快速去重
1、var array = [20, 10, 10, 10, 15, 19, 30, 7, 7, 7, 19, 25, 31, 31]; var newArray = array.filter((v, i, self) => { return self.indexOf(v) === i; }) console.log(newArray); 說明: (v, i, self):當前比較的值(v),索引(i),原數組(self); 依次為當前的值、當前的位置和原數組 self.indexOf(v) === i:比較的值(v)第一次在原數組(self)出現的位置,是否等于當前的索引位置,若是等于則加入新數組,若是不等于,則不加入新數組 例如索引為3的10:(10,3,array);self.indexOf(10)為1,第一次出現的索引值為1,不等于它本身現在的索引值3,所以不加入新數組,達到去重的效果
js去除數組中的重復項
1、formatConcatArr2(array)=={{formatConcatArr2([1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 2, 3, 3, 2, 2, 1, 23, 1, 23, 2, 3, 2, 3, 2, 3])}}
2、Set數據結構,它類似于數組,其成員的值都是唯一的。利用Array.from將Set結構轉換成數組// formatDedupeArr(array)==[ 1, 2, 3, 23 ]?
es6數組的方法
1、相信在開發過程中大家都有遇到需要對數據進行去重的需求。后臺返回的數據都是json數據嵌套,那么就會面臨需要對嵌套數據進行去重的要求。這個問題一開始我是使用遍歷循環判斷實現的,但是es6的reduce方法為我們提供了更好的實現方式。以下是代碼實現:
2、但是這種方法有一個弊端相信大家都已經看出來了,就是作為hash去重對象的key,最后item[key]的值,Number類型和String類型的數字會被認為是重復對象而被去除。但是這確實是一個比較簡單的數組對象出重方式。
js數組去重es6
1、在這里他還會把undefined也全都去掉,原因是sort()方法排序后,undefined排在最后,而最后一個undefined要和this[length]進行比較,而這個值并不存在,而也是undefined,就會認為他們是同一個值。
2、在object中,key如果是number類型,它會自動轉換成string類型,所以{1:1}和{"1":1}是相等的,這不是這個方法的缺陷,這是Oject的缺陷
3、實際開發應該更多的是純數字的去重(吧?),而且也用不上這么多方法。能記住兩三種根據實際情況的需求來選擇就行了(吧?)但作為一個正在找工作的應屆生,不得不總結多幾種方法,這樣面試官問起來的時候才不至于口啞無言嘿嘿嘿(完)













