All files / array/src some.ts

100% Statements 5/5
100% Branches 0/0
100% Functions 3/3
100% Lines 5/5

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19  4x                       14x 4x 14x 14x    
import { Predicate } from "@benneq/predicate";
import { findIndex } from "./findIndex";
 
/**
 * Creates a function that checks if any element of an {@link Array}
 * matches a {@link Predicate}.
 *
 * Returns `false` if the `array` is empty.
 *
 * @param predicate - the {@link Predicate} to match
 * @param fromIndex - the optional array index to begin with, defaults to `0`
 * @returns `true` if any element matches the `predicate`, otherwise `false`
 */
export const some =
  <T>(predicate: Predicate<[T, number, ArrayLike<T>]>, fromIndex?: number) =>
  (array: ArrayLike<T>) => {
    return findIndex(predicate, fromIndex)(array) >= 0;
  };