一、for循环+递归
function flat(){
let flatArray=[];
return function flateen(array){
for(let i=0;i<array.length;i++){
if(Array.isArray(array[i])){
flateen(array[i])
}else{
flatArray.push(array[i])
}
}
return flatArray;
}
}
let testArray=[1,2, [3,[4,5,6]],7]
console.log(flat()(testArray))
二、使用字符串处理方法
function flat(arr) {
return arr.toString().split(',').map(val => +val)
}
let testArray=[1,2, [3,[4,5,6]],7]
console.log(flat(testArray))
三、使用reduce+扩展运算符
function flat(arr) {
return arr.reduce((pre, value) => {
return Array.isArray(value) ? [...pre, ...flat(value)] : [...pre, value]
}, [])
}
let testArray=[1,2, [3,[4,5,6]],7]
console.log(flat(testArray)