Skip to content

over

INFO

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

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

创建一个函数,调用给定的函数并以数组形式返回它们的结果。

你可以使用多种类型的迭代器:

  • 函数:每个函数都使用相同的参数调用,并收集结果。
  • 属性名:每个属性名用于从提供的对象中提取值。
  • 对象:每个对象用于检查提供的对象是否匹配其属性。
  • 属性-值对:每个对用于检查提供的对象的指定属性是否匹配该值。

签名

typescript
function over(...iteratees: Array<Iteratee | Iteratee[]>): (...args: any[]) => unknown[];

参数

  • iteratees (Array<Iteratee | Iteratee[]>): 要调用的迭代器。
    • Iteratee((...args: any[]) => unknown) | symbol | number | string | object | null 类型。

返回值

((...args: any[]) => unknown[]): 返回新函数。

示例

typescript
const func = over([Math.max, Math.min]);
const func2 = over(Math.max, Math.min);
func(1, 2, 3, 4);
// => [4, 1]
func2(1, 2, 3, 4);
// => [4, 1]

const func = over(['a', 'b']);
func({ a: 1, b: 2 });
// => [1, 2]

const func = over([{ a: 1 }, { b: 2 }]);
func({ a: 1, b: 2 });
// => [true, false]

const func = over([['a', 1], ['b', 2]]);
func({ a: 1, b: 2 });
// => [true, true]

采用 MIT 许可证发布。