Function countBy

  • Count the occurrences of each item in an array based on a transformation function.

    This function takes an array and a transformation function that converts each item in the array to a key. It then counts the occurrences of each transformed item and returns an object with the transformed items as keys and the counts as values.

    Type Parameters

    • T

      The type of the items in the input array.

    • K extends PropertyKey

      The type of keys.

    Parameters

    • arr: readonly T[]

      The input array to count occurrences.

    • mapper: ((item: T) => K)

      The transformation function that maps each item to a key.

        • (item): K
        • Parameters

          • item: T

          Returns K

    Returns Record<K, number>

    An object containing the transformed items as keys and the counts as values.

    const array = ['a', 'b', 'c', 'a', 'b', 'a'];
    const result = countBy(array, x => x);
    // result will be { a: 3, b: 2, c: 1 }
    const array = [1, 2, 3, 4, 5];
    const result = countBy(array, item => item % 2 === 0 ? 'even' : 'odd');
    // result will be { odd: 3, even: 2 }