据说这是一道美团面试撸代码题目,我花一会功夫实现了,还可以
var arr = [ [1, 2, 2], [3, 4, 5, 5], [6, 7, 8, 9, [11, 12, [12, 13, [14] ] ] ], 10];
// 编写一个程序将数组扁平化去并除其中重复部分数据,最终得到一个升序且不重复的数组
function fx(arr){
var a=[]
f(arr,a)
let set=new Set(a)
let re=Array.from(set)
// console.log(re)
console.log(re.sort((a,b)=>{return a-b}))
}
//递归数组,push到a里
function f(arr,a){
//数组类型再次递归
if(arr instanceof Array){
arr.forEach(e=>{
f(e,a)
})
//非数组类型,即某一数组元素,直接push
}else {
a.push(arr)
}
}
var arr = [ [1, 2, 2], [3, 4, 5, 5], [6, 7, 8, 9, [11, 12, [12, 13, [14] ] ] ], 10];
fx(arr)
我感觉这个递归方法有点动态规划的影子