去重排序 JS 陣列去重

2021-10-25 13:26:28 字數 942 閱讀 2829

陣列去重算是面試題裡常見的考點了,之前在 medium 上看到一篇文章用三種方法實現陣列去重的,感覺十分簡潔。主要用到的是 set, array.filter, array.reduce。可能第一種大家都知道,方方也講過基數排序來去重,但是能用 filter, reduce 寫成這樣的真的很簡潔呀。

let array = [1, 1, 2, 3, 3, 3, 3, 4, 4, 5, 6, 6, 7]

array = array.from(new set(array))

console.log(array)

這個方法是每個元素都去看 index 是否和第一次出現該元素的 index 一樣,如果是一樣的就不一樣的就過濾掉(因為這是第二次出現了),否則不過濾(是第一次出現)。

let array = [1, 1, 2, 3, 3, 3, 3, 4, 4, 5, 6, 6, 7]

array = array.filter((el, index) => array.indexof(el) === index)

console.log(array)

這種比較難以一眼看懂,其實本質上就是建立乙個臨時陣列,遍歷原陣列的時候去判斷當前元素是否已經存在於臨時陣列裡了,如果存在那麼不加入,否則加入。

let array = [1, 1, 2, 3, 3, 3, 3, 4, 4, 5, 6, 6, 7]

array = array.reduce((unique, el) => unique.includes(el) ? unique : [...unique, el], )

console.log(array)

js 多維陣列去重排序

定義乙個陣列 let arr 1,2,3 7,0,5 6,9,8 輸出結果 console.log new set arr.flat infinity sort 0,1,2,3,5,6,7,8,9 用於將巢狀的陣列 拉平 變成一維的陣列。該方法返回乙個新陣列,對原資料沒有影響。如果不管有多少層巢狀,...

陣列去重排序

created methods 雙層迴圈,外層迴圈元素,內層迴圈時比較值 如果有相同的值則跳過,不相同則push進陣列 arraydereordering result.push arraydata i console.log this.sortmethod result return this.s...

JS陣列去重,物件去重

例項1根據indexof去重,indexof的好處就是返回的是首次出現的位置,這樣後面即使出現的值一樣,也只能返回第一次出現的索引,當然這個只適用於簡單的陣列 物件陣列去重 const objarr const obj const newobjarr for let i 0 i objarr.len...