var arr=[1,2,[3,4,[5]],6]
function flatten1(arr){
let result=[]
for(let i=0;i<arr.length;i++){
if(Array.isArray(arr[i])){
result=result.concat(flatten1(arr[i]))
}else{
result.push(arr[i])
}
}
return result
}
let arr1=flatten1(arr)
console.log(arr1)
function flatten2(arr){
return arr.reduce((pre,cur)=>{
return pre.concat(Array.isArray(cur)?flatten2(cur):cur)
},[])
}
let arr2=flatten2(arr)
console.log(arr2)
function flatten3(arr){
while(arr.some(item=>Array.isArray(item))){
arr=[].concat(...arr)
}
return arr
}
let arr3=flatten3(arr)
console.log(arr3)
console.log([].concat(...arr))
function flatten4(arr){
return arr.toString().split(',').map(item=>item*1)
}
let arr4=flatten4(arr)
console.log(arr4)
function flatten5(arr){
return arr.flat(Infinity)
}
let arr5=flatten5(arr)
console.log(arr5)
console