Function invertBy

  • Composes a new record with all keys and values inverted.

    The new record is generated from the result of running each element of the input record through the given transformer function.

    The corresponding inverted value of each inverted key is an array of keys responsible for generating the inverted value.

    Type Parameters

    • R extends Record<PropertyKey, PropertyKey>

      The type of the input record.

    • T extends ((key: PropertyKey) => PropertyKey)

      The type of the iterator function.

    Parameters

    • record: Readonly<R>

      The record to invert.

    • transformer: T

      The function to transform keys.

    Returns InvertByResult<R, keyof R>

    A new record with all keys and values inverted.

    import { invertBy } from "@std/collections/invert-by";
    import { assertEquals } from "@std/assert";

    const record = { a: "x", b: "y", c: "z" };

    assertEquals(
    invertBy(record, (key) => String(key).toUpperCase()),
    { X: ["a"], Y: ["b"], Z: ["c"] }
    );