数组的扁平化其实就是将一个嵌套多层的数组 array(嵌套可以是任何层数)转换为只有一层的数组。
实现数组扁平化方法
方法一:递归实现
const arr=[1,2,3,[4,5,[6,7]],[8,9,[10,11]]]
function flat(arr,newArr=[]){
arr.forEach(item => {
if(Array.isArray(item)){
flat(item,newArr)
}else{
newArr.push(item)
}
})
return newArr
}
console.log(flat(arr));
方法二:数组的flat方法
flat():创建一个新数组。并根据指定 深度 递归的将所有子数组元素拼接到新的数组中
flat(d) :d 为指定的深度,默认值为1
console.log(arr.flat()) // [1, 2, 3, 4, 5, Array(2), 8, 9, Array(2)]
console.log(arr.flat(1)) // [1, 2, 3, 4, 5, Array(2), 8, 9, Array(2)]
console.log(arr.flat(2)) // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]