SOURCE

const a = [1, [2, [3, [4, 5]]], 6]
const b =[['a','b'],['c','d'],['e','f']]

//1. es6 api

// const a1 = a.flat() // 结构深度默认 1
// const a2 = a.flat(1)
// const a3 = a.flat(2)
// const a4 = a.flat(3)
// const a5 = a.flat(Infinity) // 直接展开任意深度

// console.log('a1', a1)
// console.log('a2', a2)
// console.log('a3', a3)
// console.log('a4', a4)
// console.log('a5', a5)

// // 封装成函数
// function flatten(params) {
//     return params.flat(Infinity)
// }
// console.log(flatten(a));


//2.  toString  限制 全部是数字

// function flatten(arr) {
//   return arr.toString().split(',').map(item =>parseFloat(item))
// }
// console.log(flatten(a));


// console.log(a.toString())  //'1,2,3,4,5,6'  string
// console.log(a.toString().split(','))  //以“,”进行分割 ['1', '2', '3', '4', '5', '6']
// console.log(a.toString().split(',').map(item => parseInt(item))) // 转换成数字

// 3. for +  递归
// const x =[1,[2,[3,[4]]]]


// function flatten(arr){
//   let res = []
//   for(let i =0;i<arr.length;i++){
//       if(Array.isArray(arr[i])){
//         //   console.log(arr[i])
//         //   console.log(...flatten(arr[i]),`${i}`) 
//           res.push(...flatten(arr[i]))
//       }else{
//       res.push(arr[i])
//       }
//   }
//   return res
// }
// console.log(flatten(x)) 

// 4.  reduce api  递归  concat

// function flatten(arr){
//    return arr.reduce((pre,cur)=>{return  pre.concat( Array.isArray(cur)? flatten(cur): cur)},[])
// }

// console.log(flatten(a))
console 命令行工具 X clear

                    
>
console