利用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]]])