实现如下效果的数组打平函数:
let arr = [
1,
[ 2, 3, 4 ],
[ 5, [ 6, [ 7, [ 8 ] ] ] ]
]
console.log(flat(arr)) // [1,2,3,4,5,6,7,8]
原生的实现方法:无限层级打平就行
function flat(arr) {
return arr.flat(Infinity);
}
也可以循环并递归调用
function flat(arr) {
return arr.reduce((result, item) => {
return result.concat(Array.isArray(item) ? flat(item) : item);
}, []);
}