多维数组扁平化问题

48 阅读1分钟

利用reduce的特性,每次concat链接两个元素,递归实现,由depth控制层数

```function flat(arr, depth = 1) {
    if (depth > 0) {
        return arr.reduce((pre, cur) => {
            return pre.concat(Array.isArray(cur) ? flat(cur, depth - 1) : cur)
        },[])
    }
    return arr.slice()
}

flat([1,[2],[3,[4]]])