UNPKG

@monstermann/fn

Version:

A utility library for TypeScript.

31 lines (29 loc) 733 B
import { dfdlT } from "@monstermann/dfdl"; //#region src/array/indexOfOrElse.ts /** * `indexOfOrElse(target, value, orElse)` * * Returns the index of the first occurrence of `value` in `target`. If `value` is not found, calls `orElse` with the original array. * * ```ts * indexOfOrElse([1, 2, 3, 2], 2, () => -1); // 1 * indexOfOrElse([1, 2, 3], 4, (arr) => arr.length); // 3 * ``` * * ```ts * pipe( * [1, 2, 3, 2], * indexOfOrElse(2, () => -1), * ); // 1 * pipe( * [1, 2, 3], * indexOfOrElse(4, (arr) => arr.length), * ); // 3 * ``` */ const indexOfOrElse = dfdlT((target, value, orElse) => { const idx = target.indexOf(value); return idx < 0 ? orElse(target) : idx; }, 3); //#endregion export { indexOfOrElse };