groupBy function

Group array items by a property or function.

Example

const users = [
  { id: "1", role: "admin" },
  { id: "2", role: "user" },
  { id: "3", role: "admin" },
];
const byRole = groupBy(users, (u) => u.role);
// { admin: [user1, user3], user: [user2] }

Signature

groupBy<T, K extends string | number>(items: T[], key: keyof T | (item: T) => K): Record<K, T[]>

Type Parameters

T

Array item type

K

Grouping key type

Parameters

items

Array to group

key

Property name or function to determine group

Returns

Object with grouped items