数组扁平化
数组扁平化的方法有: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 ] ] ]