Package: effect
Module: Array
Returns the first element matching a predicate, refinement, or mapping
function, wrapped in Option.
When to use
Use to scan an iterable in iteration order and return the first selected
element or mapped value as an Option.
Details
Accepts a predicate (a, i) => boolean, a refinement, or a function
(a, i) => Option<B> for simultaneous find-and-transform. If no element
matches, this returns Option.none().
Example (Finding the first match)
import { Array } from "effect"
console.log(Array.findFirst([1, 2, 3, 4, 5], (x) => x > 3)) // Option.some(4)
See
findLast — search from the endfindFirstIndex — get the index insteadfindFirstWithIndex — get both element and indexSignature
declare const findFirst: { <A, B>(f: (a: NoInfer<A>, i: number) => Option.Option<B>): (self: Iterable<A>) => Option.Option<B>; <A, B extends A>(refinement: (a: NoInfer<A>, i: number) => a is B): (self: Iterable<A>) => Option.Option<B>; <A>(predicate: (a: NoInfer<A>, i: number) => boolean): (self: Iterable<A>) => Option.Option<A>; <A, B>(self: Iterable<A>, f: (a: A, i: number) => Option.Option<B>): Option.Option<B>; <A, B extends A>(self: Iterable<A>, refinement: (a: A, i: number) => a is B): Option.Option<B>; <A>(self: Iterable<A>, predicate: (a: A, i: number) => boolean): Option.Option<A>; }
Since v2.0.0