import { each } from '@src/each.js' export function groupBy( iterable: Iterable , fn: (element: T, index: number) => U ): Map { const map = new Map() each(iterable, (element, index) => { const key = fn(element, index) let group = map.get(key) if (!group) { group = [] map.set(key, group) } group.push(element) }) return map }