let ary = [1, [2, [3, [4, 5]]], 6];
let str = JSON.stringify(ary);
// console.log(str)
// 第0种,直接调用数组方法
let zero = ary.flat(Infinity)
console.log('zero', zero)
// 第一种,正则比配替换
let first = str.replace(/(\[|\])/g, '').split(',')
console.log('first', first)
// 第二种正则匹配parse字符串
let second = JSON.parse('[' + str.replace(/(\[|\])/g, '') + ']')
console.log('second',second)
// 第三种递归遍历
function third(ary) {
return ary.map(val=>{
if(Array.isArray(val)){
return third(val)
}else{
return val
}
})
}
console.log('third',third(ary))
// 第四种方法 reduce
function fourth(ary){
return ary.reduce((per,val)=>per.concat(Array.isArray(val)?fourth(val):val),[])
}
console.log('fourth', fourth(ary))
// 第五种,扩展用算符处理
function fifth(ary){
while(ary.some(Array.isArray)){
ary = [].concat(...ary)
}
return ary
}
console.log('fifth', fifth(ary))
console