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]

// Array.prototype.flat()用于将嵌套的数组“拉平”,变成一维的数组。该方法返回一个新数组,对原数据没有影响。
// 如果不管有多少层嵌套,都要转成一维数组,可以用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()

 

posted @ 2021-12-13 15:04  雨下大了没  阅读(139)  评论(0编辑  收藏  举报