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' }],
// ]