var arr = [[1, 2, 2], [3, 4, 5, 5], [6, 7, 8, 9, [11, 12, [12, 13, [14]]]], 10];
[...new Set(arr.flat(Infinity))].sort((a, b) => a - b);
附:多维数组展开的几种方式
- ES6增加的方法
arr.flat(Infinity);
- 迭代实现
function flatten(arr) {
while (arr.some((item) => Array.isArray(item))) {
arr = [].concat(...arr);
}
return arr;
}
flatten(arr);
- 递归实现
const flatten = (arr) =>
arr.reduce(
(res, cur) =>
Array.isArray(cur) ? res.concat(flatten(cur)) : res.concat(cur),
[]
);










网友评论