多维度数组拉平到一维
[1, [2,3], [4,[5, [6]]]]
[ 1, 2, 3, 4, 5, 6 ]
- 利用reduce和递归实现
let arr = [1, [2,3], [4,[5, [6]]]]
function flatten (arr) {
return arr.reduce((pre, cur) => pre.concat(Array.isArray(cur) ? flatten(cur) : cur), [])
}
flatten(arr)
- js原生方法
arr.flat(Infinity)
第二个参数是多维数组的维度,可以设置为Infinity,可以对无限多维度数组拉平, 设置为2时,代表将arr拉平2层
譬如arr = [ 1, [ 2, 3 ], [4, [ 5, [ 6 ] ] ] ]
那么arr.flat(2) 就是[ 1, 2, 3, 4, 5, [ 6 ] ]