Skip to content

flatten

将多维数组扁平化为一维数组。

函数签名

typescript
function flatten<T>(arr: any[], depth?: number): T[]

参数

参数名类型必填默认值说明
arrany[]-要扁平化的数组
depthnumberInfinity扁平化深度,默认完全扁平化

返回值

类型说明
T[]扁平化后的一维数组

工作原理

  1. 初始化结果数组
  2. 递归遍历输入数组的每个元素:
    • 如果元素是数组且当前深度 < 指定深度:
      • 递归调用 flatten,深度 - 1
      • 将结果添加到结果数组
    • 如果元素不是数组或已达到指定深度:
      • 直接将元素添加到结果数组
  3. 返回结果数组

示例

  • flatten([1, [2, [3, 4]]])[1, 2, 3, 4](完全扁平化)
  • flatten([1, [2, [3, 4]]], 1)[1, 2, [3, 4]](只扁平化一层)

使用递归实现,支持指定扁平化深度。与原生 Array.prototype.flat() 功能类似。