let a = [1,2,[3,4,[5,6,7],8,9],10,11]
1.js原生方法
a.flat(Infinity)
2.使用toString
这种方法返回的数组里的元素都是字符串
a.toString().split(',')
3.自己实现
2.1.使用for循环+递归
function flat(arr){
if(Array.isArray(arr)){
let newArr = []
for(let i = 0 ; i < arr.length ; i++){
if(arr[i] instanceof Array){
newArr.push(...fn(arr[i]))
}else{
newArr.push(arr[i])
}
}
console.log(newArr)
return newArr
}
return
}
2.2 使用reduce+递归
function flat(arr){
if (Array.isArray(arr)){
let res = arr.reduce((pre,cur)=>{
return pre.concat(Array.isArray(cur) ? flat(cur) : cur)
},[])
return res;
}
return
};