flat()方法用于压平数组,能够传入参数表示须要压平几层,默认为1,若是不管数组有多少层,最后都须要归为一维数组的话,传入infinity数组
实现
(思想:循环遍历数组每一项,将其仍为数组的元素递归调用实现压平)code
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方法递归