js 多維陣列去重排序

2022-09-24 05:21:10 字數 640 閱讀 3249

//

定義乙個陣列

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]

用於將巢狀的陣列「拉平」,變成一維的陣列。該方法返回乙個新陣列,對原資料沒有影響。

//如果不管有多少層巢狀,都要轉成一維陣列,可以用infinity關鍵字作為引數。

arr.flat(infinity)

//es6 提供了新的資料結構 set。它類似於陣列,但是成員的值都是唯一的,沒有重複的值。 set本身是乙個建構函式,用來生成 set 資料結構。

//去除陣列的重複成員

[...new

set(array)]

//排序

array.prototype.sort()

//所以結果就是

[...new

set(arr.flat(infinity))].sort()

//還有一種寫法

array.from(new set(arr.flat(infinity))).sort()

去重排序 JS 陣列去重

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

陣列去重排序

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

java物件陣列去重排序

在物件中重寫equals和hashcode方法 override public booleanequals object o override public inthashcode 然後使用時 list diffshippingcostvos newarraylist newhashset insh...