Go to Latest
function associateBy
import { associateBy } from "https://dotland.deno.dev/std@0.145.0/collections/mod.ts";

Transforms the given array into a Record, extracting the key of each element using the given selector. If the selector produces the same key for multiple elements, the latest one will be used (overriding the ones before it).

Example:

import { associateBy } from "https://deno.land/std@0.145.0/collections/associate_by.ts"
import { assertEquals } from "https://deno.land/std@0.145.0/testing/asserts.ts";

const users = [
    { id: 'a2e', userName: 'Anna' },
    { id: '5f8', userName: 'Arnold' },
    { id: 'd2c', userName: 'Kim' },
]
const usersById = associateBy(users, it => it.id)

assertEquals(usersById, {
    'a2e': { id: 'a2e', userName: 'Anna' },
    '5f8': { id: '5f8', userName: 'Arnold' },
    'd2c': { id: 'd2c', userName: 'Kim' },
})

Parameters

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

Returns

Record<string, T>