ts-data-forge
Version:
[](https://www.npmjs.com/package/ts-data-forge) [](https://www.npmjs.com/package/ts-data-forge) [ => 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