Skip to content

cond

INFO

出于兼容性原因,此函数仅在 es-toolkit/compat 中提供。它可能具有替代的原生 JavaScript API,或者尚未完全优化。

es-toolkit/compat 导入时,它的行为与 lodash 完全一致,并提供相同的功能,详情请见 这里

创建一个函数,该函数按顺序检查条件并运行匹配的函数。

每个对由一个条件(谓词)和一个要运行的函数组成。 该函数按顺序检查每个条件,直到找到一个返回 true 的条件。 当找到一个返回 true 的条件时,它会运行相应的函数并返回其结果。 如果所有条件都不为真,则返回 undefined

签名

typescript
function cond(pairs: any[][]): (...args: any[]) => unknown;

参数

  • pairs (Array): 成对数组。每对包含一个断言函数和一个要运行的函数。

返回值

((...args: any[]) => unknown): 一个新的复合函数,用于检查条件并运行匹配的函数。

示例

typescript
const func = cond([
  [matches({ a: 1 }), constant('matches A')],
  [conforms({ b: isNumber }), constant('matches B')],
  [stubTrue, constant('no match')],
]);

func({ a: 1, b: 2 });
// => 'matches A'

func({ a: 0, b: 1 });
// => 'matches B'

func({ a: '1', b: '2' });
// => 'no match'

采用 MIT 许可证发布。