Function distinctBy

  • Returns all elements in the given array that produce a unique value using the given discriminator, with the first matching occurrence retained.

    Uniqueness is determined by same-value-zero equality of the returned values.

    Type Parameters

    • T

      The type of the elements in the input array.

    • D

      The type of the values produced by the discriminator function.

    Parameters

    • array: Iterable<T, any, any>

      The array to filter for distinct elements.

    • discriminator: ((el: T) => D)

      The function to extract the value to compare for uniqueness.

        • (el): D
        • Parameters

          • el: T

          Returns D

    Returns T[]

    An array of distinct elements in the input array.

    import { distinctBy } from "@std/collections/distinct-by";
    import { assertEquals } from "@std/assert";

    const users = [{ id: 1, name: "Anna" }, { id: 2, name: "Kim" }, { id: 1, name: "Anna again" }];
    const uniqueUsers = distinctBy(users, (user) => user.id);

    assertEquals(uniqueUsers, [{ id: 1, name: "Anna" }, { id: 2, name: "Kim" }]);