UNPKG

remeda

Version:

A utility library for JavaScript and Typescript.

46 lines (45 loc) 1.62 kB
import { IterableContainer } from "./IterableContainer-BuT0t52g.js"; import { Deduped } from "./Deduped-Bqd9uxVJ.js"; //#region src/uniqueWith.d.ts type IsEquals<T> = (a: T, b: T) => boolean; /** * Returns a new array containing only one copy of each element in the original * list. Elements are compared by custom comparator isEquals. * * @param data - The array to filter. * @param isEquals - The comparator. * @signature * R.uniqueWith(array, isEquals) * @example * R.uniqueWith( * [{a: 1}, {a: 2}, {a: 2}, {a: 5}, {a: 1}, {a: 6}, {a: 7}], * R.equals, * ) // => [{a: 1}, {a: 2}, {a: 5}, {a: 6}, {a: 7}] * @dataFirst * @lazy * @category Array */ declare function uniqueWith<T extends IterableContainer>(data: T, isEquals: IsEquals<T[number]>): Deduped<T>; /** * Returns a new array containing only one copy of each element in the original * list. Elements are compared by custom comparator isEquals. * * @param isEquals - The comparator. * @signature R.uniqueWith(isEquals)(array) * @example * R.uniqueWith(R.equals)( * [{a: 1}, {a: 2}, {a: 2}, {a: 5}, {a: 1}, {a: 6}, {a: 7}], * ) // => [{a: 1}, {a: 2}, {a: 5}, {a: 6}, {a: 7}] * R.pipe( * [{a: 1}, {a: 2}, {a: 2}, {a: 5}, {a: 1}, {a: 6}, {a: 7}], // only 4 iterations * R.uniqueWith(R.equals), * R.take(3) * ) // => [{a: 1}, {a: 2}, {a: 5}] * @dataLast * @lazy * @category Array */ declare function uniqueWith<T extends IterableContainer>(isEquals: IsEquals<T[number]>): (data: T) => Deduped<T>; //#endregion export { uniqueWith }; //# sourceMappingURL=uniqueWith-ZxpoC9Ol.d.ts.map