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方法遞歸