Skip to main content
Deno 2 is finally here 🎉️
Learn more
Go to Latest
The Standard Library has been moved to JSR. See the blog post for details.
function groupBy
import { groupBy } from "https://deno.land/std@0.147.0/collections/group_by.ts";

Applies the given selector to each element in the given array, returning a Record containing the results as keys and all values that produced that key as values.

Example:

import { groupBy } from "https://deno.land/std@0.147.0/collections/group_by.ts";
import { assertEquals } from "https://deno.land/std@0.147.0/testing/asserts.ts";

type Person = {
  name: string;
};

const people: Person[] = [
    { name: 'Anna' },
    { name: 'Arnold' },
    { name: 'Kim' },
];
const peopleByFirstLetter = groupBy(people, it => it.name.charAt(0))

assertEquals(peopleByFirstLetter, {
    'A': [ { name: 'Anna' }, { name: 'Arnold' } ],
    'K': [ { name: 'Kim' } ],
})

Type Parameters

T
K extends string

Parameters

array: readonly T[]
selector: (el: T) => K

Returns

Partial<Record<K, T[]>>