遞歸
遞歸的遍歷每一項(xiàng)璧诵,若為數(shù)組則繼續(xù)遍歷平委,否則concat
arr.map(item => { if(Array.isArray(item)) {
res = res.concat(flatten(item));
} else {
res.push(item);
}
}); return res;
}
擴(kuò)展運(yùn)算符
es6的擴(kuò)展運(yùn)算符能將二維數(shù)組變?yōu)橐痪S
根據(jù)這個(gè)結(jié)果我們可以做一個(gè)遍歷,若arr中含有數(shù)組則使用一次擴(kuò)展運(yùn)算符燃箭,直至沒有為止鸥滨。
function flatten(arr) { while(arr.some(item=>Array.isArray(item))) {
arr = [].concat(...arr);
} return arr;</pre>