SOURCE

/*
常用的数组遍历方法
array.map(fn):返回新数组,新数组由原数组中的每个元素都执行一次fn后的返回值组成
array.concat(数组):返回新数组,合并两个或多个数组
array.some(fn):返回true/flase,测试数组中是否至少有一个元素通过了由提供的函数fn实现的测试,只要有一个通过就返回true,没有通过则返回flase
const array = [1, 2, 3, 4, 5];
const even = (element) => element % 2 === 0;
console.log(array.some(even));//true
*/
var arr = [[1,2,2],[3,4,5],[6,7,8,9,[11,12,[13]]],10]
//用while循环实现
function flat(result) {
    while(result.some(item=>Array.isArray(item))){
        result = [].concat(...result)
    }
    return result
}
console.log(flat(arr))

//用递归实现
function flat(result) {
    const temp=result.map(item => {
        if(Array.isArray(item)) {
            return flat(item)
        }
        return item
    })
    return [].concat(...temp)
}
console 命令行工具 X clear

                    
>
console