数组降维几种方式

110 阅读1分钟

const oldArr = [ 1, [ 2, [3], [4, 5, 6], [7, 8, 9], 10, 11 ], 12, 13, 14, [15, 16, 17], ];

  1. flat const newArr = oldArr.flat(Infinity);

flat参数是降维深度,默认为1,Infinity是无限深度。

  1. 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);


参考文献:juejin.cn/post/684490…