今天看到一道js题目如下:
// 已知如下数组,编写一个程序将数组扁平化去并除其中重复部分数据,最终得到一个升序且不重复的数组 var arr = [ [1, 2, 2], [3, 4, 5, 5], [6, 7, 8, 9, [11, 12, [12, 13, [14] ] ] ], 10];
下面是解决方法:
1 /** 数组扁平化方法: **/ 2 3 // 1) 4 arr.toString().split(',') 5 6 // 2) 7 arr.flat(Infinity) 8 // flat 是js的内置方法,会按照一个可指定的深度递归遍历数组,并将所有元素与遍历到的子数组中的元素合并为一个新数组返回。
1 /** 数组去重 **/ 2 3 Array.from( new Set(arr) )
1 /** 排序 **/ 2 3 arr.sort( ( a,b )=> a-b )
Array.from(new Set(arr.flat(Infinity))).sort((a,b)=>a-b)