const oldArr = [ 1, [ 2, [3], [4, 5, 6], [7, 8, 9], 10, 11 ], 12, 13, 14, [15, 16, 17], ];
- flat const newArr = oldArr.flat(Infinity);
flat参数是降维深度,默认为1,Infinity是无限深度。
- concat concat不改变原数组
// 二降一
const newArr = [].concat(...oldArr);
// 递归降维
const ergodic = (arr) => arr.reduce((prev, curr, index, list) => {
if (Array.isArray(curr)) {
return prev.concat(...ergodic(curr));
}
return prev.concat(curr);
}, []);
const newArr = ergodic(oldArr);