const arr = [1,[2,[3,4,[5]]],6]
//1.使用js自带api完成数组扁平化
console.log(arr.flat(3))//里面的参数指的是内套循环的层数
//2.数组正则表达式(这个可以重点理解一下)
const arr2 = JSON.stringify(arr).replace(/\[|\]/g,''
console.log(arr2,typeof arr2)////输出 "1,2,3,4,5,6" string
console.log(arr2.split(',')) //输出一个数组,这个数组的每个元素以","相隔。
//最终输出 ["1","2","3","4","5","6"]
//3.数组正则改良版
const arr3 = JSON.parse('['+arr+']')
console.log(arr3,typeof arr3)//输出 [1,2,3,4,5,6] object
//4.使用递归方式来将数组扁平(很重要的思想!!!)
var array = []
function flat(arr){
//遍历数组每一项
for(var i = 0;i<arr.length;i++){
if(Array.isArray(arr[i])){
//如果该元素依旧是数组的形式,再调用fn进入嵌套数组当中去
flat(arr[i])
}
else{
//直至读取到纯number元素,就把它推入新的数组
array.push(arr[i])
}
}
return array
}
console.log(flat(arr))