Skip to main content
Using Deno in production at your company? Earn free Deno merch.
Give us feedback
Go to Latest
function aggregateGroups
import { aggregateGroups } from "";

Applies the given aggregator to each group in the given Grouping, returning the results together with the respective group keys

import { aggregateGroups } from "";
import { assertEquals } from "";

const foodProperties = {
    'Curry': [ 'spicy', 'vegan' ],
    'Omelette': [ 'creamy', 'vegetarian' ],
const descriptions = aggregateGroups(foodProperties,
    (current, key, first, acc) => {
        if (first)
            return `${key} is ${current}`

        return `${acc} and ${current}`

assertEquals(descriptions, {
    'Curry': 'Curry is spicy and vegan',
    'Omelette': 'Omelette is creamy and vegetarian',


record: Readonly<Record<string, Array<T>>>
aggregator: (
current: T,
key: string,
first: boolean,
accumulator?: A,
) => A


Record<string, A>