flat()方法用于压平数组,可以传入参数表示需要压平几层,默认为1,如果无论数组有多少层,最后都需要归为一维数组的话,传入infinity
实现
(思想:循环遍历数组每一项,将其仍为数组的元素递归调用实现压平)
function _flat(arr){
let newArr = []
arr.forEach(item => {
if(Array.isArray(item)){
newArr = newArr.concat(arguments.callee(item))
}else{
newArr.push(item)
}
})
return newArr
}
以上通过循环遍历的方法实现了无限压平
如果想要完美实现原生带参数的flat方法,需要借助reduce方法
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。