var arr = ['0', ['1', '2'], '3', ['4', ['5', '6'], '7'], '8', ['9', ['10', '11', ['12', '13'], '14']], '15'];
方法一: 利用 flat api
function flatArray4(arr) {
return arr.flat(Infinity);
}
方法二 递归
// 从外往内递归
function flatArray3(arr) { //函数的递归就是在函数中调用自身
var hasArray = arr.some(item => item instanceof Array); instanceof运算符 判断是否为数组 是则返回true
if (hasArray) {
return flatArray3([].concat(arr.flat())); //需要设置初始值为[],不然concat会报错 ,flat不传参数时,默认扁平化一层
}
return arr;
}