function fn(arr, num) {
num === undefined && (num = find(arr))
if (num > 0) return arr.reduce((x, y) => x.concat(Array.isArray(y) ? fn(y, num - 1) : y), [])
if (num === 0) return arr
}
function find(arr, num = 1) {
Array.isArray(arr) && arr.length && arr.forEach(item => find(item, num++))
return num
}
const arr2 = [
[1, 2],
[3, 4],
[5, 6],
[7, [8, 9]]
]
console.log(arr2) // [1,2,3,4,5,6,7,8,9]