var arr1 = [1, 2, 3, [1, 2, 3, 4, [2, 3, 4]]]
function flatDeep(arr, d = 1) {
return d > 0 ?
arr.reduce(
(total, currentValue) =>
total.concat(Array.isArray(currentValue) ? flatDeep(currentValue, d - 1) : currentValue),
[] // 初始值(initialValue)是一个空数组
) :
arr
}
flatDeep(arr1, Infinity)
reduce的语法和参数