主要是考ES5、ES6关于数组的使用问题
let a = [1,[1,2],[1,2,[3]]],
c = [1,[3,4,[124,123123,5123]],31,[123,41],[31,41,321,123]]
let arr_Fun =arr=>{
return [...new Set(arr.join().split(','))].sort((a,b)=>{return a-b}).map(Number)
//return [...new Set(arr.toString().split(','))].sort((a,b)=>{return a-b}).map(Number)
}
console.log(arr_Fun(a))
console.log(arr_Fun(c))
讲解:
1、主要使用的是arr_Fun的函数,另外 arr=>{}是用的箭头函数
2、arr.toString().split(',')或者arr.join().split(',')是为了让把数组扁平化,先把数组组成字符串,然后split为数组
3、new Set(...)是利用Set的特性,去除重复的数字(此时数组内都是字符串),返回的是Set类型集合
4、[...new Set]是得到一个数组,...是扩展运算符
5、sort是排序,return a-b。-1的话,就小的排前,大的放后。