flatten
将多维数组扁平化为一维数组。
函数签名
typescript
function flatten<T>(arr: any[], depth?: number): T[]参数
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
arr | any[] | 是 | - | 要扁平化的数组 |
depth | number | 否 | Infinity | 扁平化深度,默认完全扁平化 |
返回值
| 类型 | 说明 |
|---|---|
T[] | 扁平化后的一维数组 |
工作原理
- 初始化结果数组
- 递归遍历输入数组的每个元素:
- 如果元素是数组且当前深度 < 指定深度:
- 递归调用
flatten,深度 - 1 - 将结果添加到结果数组
- 递归调用
- 如果元素不是数组或已达到指定深度:
- 直接将元素添加到结果数组
- 如果元素是数组且当前深度 < 指定深度:
- 返回结果数组
示例:
flatten([1, [2, [3, 4]]])→[1, 2, 3, 4](完全扁平化)flatten([1, [2, [3, 4]]], 1)→[1, 2, [3, 4]](只扁平化一层)
使用递归实现,支持指定扁平化深度。与原生 Array.prototype.flat() 功能类似。