递归
递归的遍历每一项,若为数组则继续遍历,否则concat
arr.map(item => { if(Array.isArray(item)) {
res = res.concat(flatten(item));
} else {
res.push(item);
}
}); return res;
}
扩展运算符
es6的扩展运算符能将二维数组变为一维
根据这个结果我们可以做一个遍历,若arr中含有数组则使用一次扩展运算符,直至没有为止。
function flatten(arr) { while(arr.some(item=>Array.isArray(item))) {
arr = [].concat(...arr);
} return arr;</pre>