UNPKG

ts-data-forge

Version:

[![npm version](https://img.shields.io/npm/v/ts-data-forge.svg)](https://www.npmjs.com/package/ts-data-forge) [![npm downloads](https://img.shields.io/npm/dm/ts-data-forge.svg)](https://www.npmjs.com/package/ts-data-forge) [![License](https://img.shields.

208 lines 7.22 kB
/** * Finds the first element that satisfies a predicate. * * @example * * ```ts * const users = [ * { id: 1, name: 'Ada' }, * { id: 2, name: 'Grace' }, * ]; * * const found = Arr.find(users, (user) => user.id === 2); * * const missing = Arr.find<{ id: number }>((user) => user.id === 3)(users); * * assert.deepStrictEqual(found, Optional.some({ id: 2, name: 'Grace' })); * * assert.deepStrictEqual(missing, Optional.none); * ``` */ export declare function find<E, F extends E>(array: readonly E[], predicate: (value: E, index: SizeType.Arr, arr: readonly E[]) => value is F): Optional<F>; export declare function find<const Ar extends readonly unknown[]>(array: Ar, predicate: (value: Ar[number], index: ArrayIndex<Ar>, arr: Ar) => boolean): Optional<Ar[number]>; export declare function find<E>(predicate: (value: E, index: SizeType.Arr, arr: readonly E[]) => boolean): (array: readonly E[]) => Optional<E>; /** * Finds the last element that satisfies a predicate. * * @example * * ```ts * const numbers = [1, 3, 2, 4, 5]; * * const lastEven = Arr.findLast(numbers, (n) => n % 2 === 0); * * const none = Arr.findLast<number>((n) => n > 10)(numbers); * * assert.deepStrictEqual(lastEven, Optional.some(4)); * * assert.deepStrictEqual(none, Optional.none); * ``` */ export declare function findLast<E, F extends E>(array: readonly E[], predicate: (value: E, index: SizeType.Arr, arr: readonly E[]) => value is F): Optional<F>; export declare function findLast<const Ar extends readonly unknown[]>(array: Ar, predicate: (value: Ar[number], index: ArrayIndex<Ar>, arr: Ar) => boolean): Optional<Ar[number]>; export declare function findLast<E>(predicate: (value: E, index: SizeType.Arr, arr: readonly E[]) => boolean): (array: readonly E[]) => Optional<E>; /** * Finds the index of the first element that satisfies a predicate. * * @example * * ```ts * const letters = ['a', 'b', 'c']; * * const indexOfB = Arr.findIndex(letters, (letter) => letter === 'b'); * * // eslint-disable-next-line unicorn/prefer-array-index-of * const indexOfMissing = Arr.findIndex<string>((letter) => letter === 'z')( * letters, * ); * * assert.isTrue(indexOfB === 1); * * assert.isTrue(indexOfMissing === -1); * ``` */ export declare function findIndex<const Ar extends readonly unknown[]>(array: Ar, predicate: (value: Ar[number], index: ArrayIndex<Ar>, arr: Ar) => boolean): ArrayIndex<Ar> | -1; export declare function findIndex<E>(predicate: (value: E, index: SizeType.Arr, arr: readonly E[]) => boolean): (array: readonly E[]) => SizeType.Arr | -1; /** * Finds the index of the last element that satisfies a predicate. * * @example * * ```ts * const letters = ['a', 'b', 'c', 'b']; * * const lastIndexOfB = Arr.findLastIndex(letters, (letter) => letter === 'b'); * * // eslint-disable-next-line unicorn/prefer-array-index-of * const notFound = Arr.findLastIndex<string>((letter) => letter === 'z')(letters); * * assert.isTrue(lastIndexOfB === 3); * * assert.isTrue(notFound === -1); * ``` */ export declare function findLastIndex<const Ar extends readonly unknown[]>(array: Ar, predicate: (value: Ar[number], index: ArrayIndex<Ar>, arr: Ar) => boolean): ArrayIndex<Ar> | -1; export declare function findLastIndex<E>(predicate: (value: E, index: SizeType.Arr, arr: readonly E[]) => boolean): (array: readonly E[]) => SizeType.Arr | -1; /** * Gets the index of a value in an array. * * @example * * ```ts * const fruits = ['apple', 'banana', 'orange', 'banana']; * * const indexOfBanana = Arr.indexOf(fruits, 'banana'); * * const indexOfGrape = Arr.indexOf(fruits, 'grape'); * * // Curried version * const findApple = Arr.indexOf('apple'); * * const indexOfApple = findApple(fruits); * * console.log(indexOfBanana); // => 1 * * console.log(indexOfGrape); // => -1 * * console.log(indexOfApple); // => 0 * ``` */ export declare function indexOf<const Ar extends readonly unknown[]>(array: Ar, searchElement: Ar[number]): ArrayIndex<Ar> | -1; export declare function indexOf<E>(searchElement: E): (array: readonly E[]) => SizeType.Arr | -1; /** * Gets the index of a value in an array, starting from a specified index. * * @example * * ```ts * const fruits = ['apple', 'banana', 'orange', 'banana']; * * // Search for 'banana' starting from index 1 * const firstBanana = Arr.indexOfFrom(fruits, 'banana', 1); * * // Search for 'banana' starting from index 2 * const secondBanana = Arr.indexOfFrom(fruits, 'banana', 2); * * // Element not found * const notFound = Arr.indexOfFrom(fruits, 'grape', 0); * * // Curried version * const findBananaFrom2 = Arr.indexOfFrom('banana', 2); * * const index = findBananaFrom2(fruits); * * console.log(firstBanana); // => 1 * * console.log(secondBanana); // => 3 * * console.log(notFound); // => -1 * * console.log(index); // => 3 * ``` */ export declare function indexOfFrom<const Ar extends readonly unknown[]>(array: Ar, searchElement: Ar[number], fromIndex: ArgArrayIndexWithNegative<Ar>): ArrayIndex<Ar> | -1; export declare function indexOfFrom<E>(searchElement: E, fromIndex: SizeType.ArgArrWithNegative): (array: readonly E[]) => SizeType.Arr | -1; /** * Gets the last index of a value in an array. * * @example * * ```ts * const fruits = ['apple', 'banana', 'orange', 'banana']; * * const lastBanana = Arr.lastIndexOf(fruits, 'banana'); * * const lastApple = Arr.lastIndexOf(fruits, 'apple'); * * const notFound = Arr.lastIndexOf(fruits, 'grape'); * * // Curried version * const findLastBanana = Arr.lastIndexOf('banana'); * * const index = findLastBanana(fruits); * * console.log(lastBanana); // => 3 * * console.log(lastApple); // => 0 * * console.log(notFound); // => -1 * * console.log(index); // => 3 * ``` */ export declare function lastIndexOf<const Ar extends readonly unknown[]>(array: Ar, searchElement: Ar[number]): ArrayIndex<Ar> | -1; export declare function lastIndexOf<E>(searchElement: E): (array: readonly E[]) => SizeType.Arr | -1; /** * Gets the last index of a value in an array, starting from a specified index. * * @example * * ```ts * const fruits = ['apple', 'banana', 'orange', 'banana', 'grape']; * * // Search backwards for 'banana' from index 3 * const lastBananaFrom3 = Arr.lastIndexOfFrom(fruits, 'banana', 3); * * // Search backwards for 'banana' from index 2 * const lastBananaFrom2 = Arr.lastIndexOfFrom(fruits, 'banana', 2); * * // Element not found * const notFound = Arr.lastIndexOfFrom(fruits, 'grape', 2); * * // Curried version * const findBananaFrom3 = Arr.lastIndexOfFrom('banana', 3); * * const index = findBananaFrom3(fruits); * * console.log(lastBananaFrom3); // => 3 * * console.log(lastBananaFrom2); // => 1 * * console.log(notFound); // => -1 * * console.log(index); // => 3 * ``` */ export declare function lastIndexOfFrom<const Ar extends readonly unknown[]>(array: Ar, searchElement: Ar[number], fromIndex: ArgArrayIndexWithNegative<Ar>): ArrayIndex<Ar> | -1; export declare function lastIndexOfFrom<E>(searchElement: E, fromIndex: SizeType.ArgArrWithNegative): (array: readonly E[]) => SizeType.Arr | -1; //# sourceMappingURL=array-utils-search.d.mts.map