2019-04-14
描述
对数组中的多层嵌套进行平铺。
提示
- 需要使用递归。
- 使用展开操作符
...
展开一个数组。 - 使用
Array.prototype.concat()
把空数组[]
和展开的数组合并后创建一个新数组。 - 递归展开数组中的每一个元素。
代码
const deepFlatten = arr => [].concat(...arr.map(v => (Array.isArray(v) ? deepFlatten(v) : v)));
示例
把多层嵌套的数组展开为一个一维数组:
deepFlatten([1, [2], [[3], 4], 5]); // [1,2,3,4,5]