function flat(arr) {
let newArr = []
for (let i = 0; i < arr.length; i++) {
Array.isArray(arr[i]) ? newArr = newArr.concat(flat(arr[i])) : newArr.push(arr[i])
}
return newArr
}
验证
const arr = [1, 2, [3, [4, 5, [6]]]]
const result = flat(arr)
console.log(result)
如果有第二个参数,实现需要拍平几层
function flat(arr, deep = 1) {
let newArr = []
for (let i = 0; i < arr.length; i++) {
deep > 0 && Array.isArray(arr[i]) ? newArr = newArr.concat(flat(arr[i], deep - 1)) : newArr.push(arr[i])
}
return newArr
}
验证
const arr = [1, 2, [3, [4, 5, [6]]]]
const result = flat(arr, 3)
console.log(result)