wundertec-core
Version:
Librería estándar de utilidades e integraciones AWS + helpers generales
18 lines (17 loc) • 572 B
text/typescript
/**
* Agrupa un array de elementos según una función de agrupamiento.
* @param array Array de elementos.
* @param fn Función que recibe un elemento y devuelve la clave de grupo.
* @returns Objeto cuyas propiedades son claves de grupo y valores arrays de elementos.
*/
export function groupBy<T, K extends string | number>(
array: T[],
fn: (item: T) => K
): Record<K, T[]> {
return array.reduce<Record<K, T[]>>((acc, item) => {
const key = fn(item);
if (!acc[key]) acc[key] = [];
acc[key].push(item);
return acc;
}, {} as Record<K, T[]>);
}