據說這是一道美團面試擼代碼題目,我花一會功夫實現了,還可以
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)
我感覺這個遞歸方法有點動態規劃的影子