一个很骚气的数组降维

前段时间朋友发了一个面试题给我
原题是: 将已知数组 [1,2,3,[2,3,[3,4,5,6],4,5,6],4,5] 降维去重排序 得到[1,2,3,4,5,6]

看到这个题目首先想到的是 要对数组降维 只要对数组降维了 去重可以使用 Array.from(new Set()) 去处理, 排序用数组的sort()处理

一开始项目想的是降维嘛肯定是循环递归了 但是有感觉写的很累(懒的人都很做)就和朋友一起去找各种降维的方法,找到一个toString()的方法, 很骚

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# 数组降维
let arr = [1,2,3,[2,3,[3,4,5,6],4,5,6],4,5]

arr = arr.toString()
# "1,2,3,2,3,3,4,5,6,4,5,6,4,5"

arr = arr.split(',').map(n=>Number(n))
# [1, 2, 3, 2, 3, 3, 4, 5, 6, 4, 5, 6, 4, 5]

# 数组去重

arr = Array.from(new Set(arr))
# [1, 2, 3, 4, 5, 6]

# 数组排序

arr = arr.sort((a,b)=>a-b)
# [1, 2, 3, 4, 5, 6]

-------------------------------------------------------

#很喜欢一行的写法 很骚

let arr = [1,2,3,[2,3,[3,4,5,6],4,5,6],4,5]

arr = Array.from(new Set(arr.toString().split(',').map(n=>Number(n)))).sort((a,b)=>a-b)