SOURCE

function flatDeep(arr, d = 1) {
    return d > 0 ? arr.reduce((acc, val) => acc.concat(Array.isArray(val) ? flatDeep(val, d-1) : val), []) : arr.slice();
}

 var arr1 = [1,2,3,[1,2,3,4, [2,3,4]]];
 console.log(flatDeep(arr1, Infinity));
console 命令行工具 X clear

                    
>
console