Skip to content

数组扁平化

数组扁平化的方法有:flat()flatMap()

flat()

flat() 方法会创建一个新数组,并根据指定深度递归地将所有子数组元素拼接到新数组中。

ts
const arr = [1, [2, [3, [4, 5]]]];

const flatArrDepth1 = arr.flat(); // [1, 2, [3, [4, 5]]]

const flatArrDepth2 = arr.flat(2); // [1, 2, 3, [4, 5]]

const flatArrInfinity = arr.flat(Infinity); // [1, 2, 3, 4, 5]

flatMap()

flatMap() 等价于调用map()方法后再调用深度为 1 的flat()方法,但比分别调用这两个方法稍微更高效一些。

ts
const array = [1, [2, [3, [4, 5]]]];

const flatMapArr = array.flatMap((item) =>
  typeof item === "number" ? item * 2 : item
); // [ 2, 2, [ 3, [ 4, 5 ] ] ]