until
重复执行函数直到满足条件。
函数签名
typescript
function until<T>(
predicate: (value: T) => boolean,
fn: (value: T) => T,
initialValue: T
): T参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
predicate | (value: T) => boolean | 是 | 终止条件函数 |
fn | (value: T) => T | 是 | 每次迭代执行的函数 |
initialValue | T | 是 | 初始值 |
返回值
| 类型 | 说明 |
|---|---|
T | 满足条件时的最终值 |
工作原理
- 从
initialValue开始 - 循环执行:
- 检查
predicate(value)是否为 true - 如果是,返回当前值并停止
- 如果否,执行
fn(value)获取新值 - 用新值继续下一轮循环
- 检查
- 返回满足条件时的值
示例:
typescript
const result = until(
(n) => n >= 100,
(n) => n * 2,
1
)
// 执行过程: 1 → 2 → 4 → 8 → 16 → 32 → 64 → 128
// 返回: 128类似 while 循环,但以函数式风格实现。