Skip to content

Documentation / @andrew_l/toolkit / keyBy

Function: keyBy() ​

Call Signature ​

keyBy<T, K>(array, keyBy, objectMode?): Map<IsPropertyKey<T, K, K>, T>

Maps each element of an array based on a provided key.

Type Parameters ​

T ​

T

K ​

K extends string | number | symbol

Parameters ​

array ​

readonly T[]

keyBy ​

K

objectMode? ​

false

Returns ​

Map<IsPropertyKey<T, K, K>, T>

Example ​

ts
const data = [
    { id: 1, name: 'group 1' },
    { id: 2, name: 'group 2' },
    { id: 1, name: 'group 2' }
];

const result = keyBy(data, 'id');
console.log(Object.entries(result));
// [
//    [1, [{ id: 1, name: 'group 1' }, { id: 1, name: 'group 2' }],
//    [2, { id: 2, name: 'group 2' }],
// ]

Call Signature ​

keyBy<T, K>(array, keyBy, objectMode?): Map<K, T>

Maps each element of an array based on a provided key.

Type Parameters ​

T ​

T

K ​

K

Parameters ​

array ​

readonly T[]

keyBy ​

(item) => K

objectMode? ​

false

Returns ​

Map<K, T>

Example ​

ts
const data = [
    { id: 1, name: 'group 1' },
    { id: 2, name: 'group 2' },
    { id: 1, name: 'group 2' }
];

const result = keyBy(data, 'id');
console.log(Object.entries(result));
// [
//    [1, [{ id: 1, name: 'group 1' }, { id: 1, name: 'group 2' }],
//    [2, { id: 2, name: 'group 2' }],
// ]

Call Signature ​

keyBy<T, K>(array, keyBy, objectMode): Record<K, T>

Maps each element of an array based on a provided key.

Type Parameters ​

T ​

T

K ​

K extends string | number | symbol

Parameters ​

array ​

readonly T[]

keyBy ​

K

objectMode ​

true

Returns ​

Record<K, T>

Example ​

ts
const data = [
    { id: 1, name: 'group 1' },
    { id: 2, name: 'group 2' },
    { id: 1, name: 'group 2' }
];

const result = keyBy(data, 'id');
console.log(Object.entries(result));
// [
//    [1, [{ id: 1, name: 'group 1' }, { id: 1, name: 'group 2' }],
//    [2, { id: 2, name: 'group 2' }],
// ]

Call Signature ​

keyBy<T, K>(array, keyBy, objectMode): Record<K, T>

Maps each element of an array based on a provided key.

Type Parameters ​

T ​

T

K ​

K extends PropertyKey

Parameters ​

array ​

readonly T[]

keyBy ​

(item) => K

objectMode ​

true

Returns ​

Record<K, T>

Example ​

ts
const data = [
    { id: 1, name: 'group 1' },
    { id: 2, name: 'group 2' },
    { id: 1, name: 'group 2' }
];

const result = keyBy(data, 'id');
console.log(Object.entries(result));
// [
//    [1, [{ id: 1, name: 'group 1' }, { id: 1, name: 'group 2' }],
//    [2, { id: 2, name: 'group 2' }],
// ]