SOURCE

//数组扁平化就是将 [1, [2, [3]]] 这种多层的数组拍平成一层 [1, 2, 3]。
// 使用 Array.prototype.flat 可以直接将多层数组拍平成一层
const arr=[1,[2,3,[4,5]]].flat(2)
console.log(arr)
const arr1=[1,[2,[2,3],2,[4,5]]]
//es5实现:递归
function flatten(arr) {
    var result = [];
    for (var i = 0, len = arr.length; i < len; i++) {
        if (Array.isArray(arr[i])) {
            result = result.concat(flatten(arr[i]))
        } else {
            result.push(arr[i])
        }
    }
    return result;
}

console.log(flatten(arr1))
//es6实现
function flatten1(arr){
    while(arr.some(item=>Array.isArray(item))){
        arr=[].concat(...arr)
    }
    return arr
}
console.log(flatten1(arr1))
console 命令行工具 X clear

                    
>
console