Skip to content

groupBy() function

Splits Iterable/AsyncIterable into sets, grouped by the result of running each value through f.

Signature:

typescript
declare function groupBy<A extends Key>(f: (a: A) => A, iterable: Iterable<A>): {
    [K in A]: K[];
};

Example

ts
const given = [
  { category: "clothes", desc: "good" },
  { category: "pants", desc: "bad" },
  { category: "shoes", desc: "not bad" },
  { category: "shoes", desc: "great" },
  { category: "pants", desc: "good" },
];

groupBy((a) => a.category, given);
// {
//   clothes: [{ category: "clothes", desc: "good" }],
//   pants: [
//     { category: "pants", desc: "bad" },
//     { category: "pants", desc: "good" },
//   ],
//   shoes: [
//     { category: "shoes", desc: "not bad" },
//     { category: "shoes", desc: "great" },
//   ],
// };

Try It

Open Source Code

Released under the Apache-2.0 License.