ts-data-forge
    Preparing search index...
    • Groups elements by a key and counts the elements in each group.

      Type Parameters

      • const Ar extends readonly unknown[]
      • G extends Primitive

      Parameters

      • array: Ar
      • grouper: (value: Ar[number], index: ArrayIndex<Ar>) => G

      Returns IMap<G, ArrayIndex<Ar>>

      const words = ['Ada', 'Grace', 'Alan', 'Barbara'] as const;

      const counts = Arr.countBy(words, (word) => word[0]);

      assert.deepStrictEqual(counts.get('A'), Optional.some(2));
      assert.deepStrictEqual(counts.get('G'), Optional.some(1));
      assert.deepStrictEqual(counts.get('B'), Optional.some(1));
    • Groups elements by a key and counts the elements in each group.

      Type Parameters

      • E
      • G extends Primitive

      Parameters

      • grouper: (value: E, index: Uint32) => G

      Returns (array: readonly E[]) => IMap<G, Uint32>

      const words = ['Ada', 'Grace', 'Alan', 'Barbara'] as const;

      const counts = Arr.countBy(words, (word) => word[0]);

      assert.deepStrictEqual(counts.get('A'), Optional.some(2));
      assert.deepStrictEqual(counts.get('G'), Optional.some(1));
      assert.deepStrictEqual(counts.get('B'), Optional.some(1));