方案一,利用Array自带方法,最好记的方法。
function recursionFlat1(arr = []) { return arr.flat(Infinity) }
方案二,最容易弄懂的方法。
function recursionFlat2(arr = []) { const res = []; arr.forEach(item => { if(Array.isArray(item)) { res.push(...recursionFlat2(item)) } else { res.push(item) } }) return res; }
方案三,方案二的简化版,思路相同
function recursionFlat3(arr = []) { return arr.reduce((res, item) => res.concat(Array.isArray(item) ? recursionFlat3(item) : item), []) }