rambda
Version:
Lightweight and faster alternative to Ramda with included TS definitions
21 lines (15 loc) • 438 B
JavaScript
export function groupByFallback(groupFn, list) {
const result = {}
for (let i = 0; i < list.length; i++) {
const item = list[i]
const key = groupFn(item)
if (!result[key]) {
result[key] = []
}
result[key].push(item)
}
return result
}
export function groupBy(groupFn) {
return iterable => Object.groupBy ? Object.groupBy(iterable,groupFn) : groupByFallback(groupFn, iterable)
}