groupBy<T, K> function

Map<K, List<T>> groupBy<T, K>(
  1. List<T> items,
  2. K keyFunction(
    1. T
    )
)

Groups a list of maps by a specific key.

Implementation

Map<K, List<T>> groupBy<T, K>(List<T> items, K Function(T) keyFunction) {
  return items.fold<Map<K, List<T>>>({}, (Map<K, List<T>> map, T item) {
    final K key = keyFunction(item);
    map.putIfAbsent(key, () => []).add(item);
    return map;
  });
}