groupBy<K> method

Map<K, List<T>> groupBy<K>(
  1. K keyExtractor(
    1. T element
    )
)

Groups elements by a specific key and returns a map of key to list of elements

Implementation

Map<K, List<T>> groupBy<K>(K Function(T element) keyExtractor) {
  final Map<K, List<T>> grouped = {};
  for (var element in this) {
    final key = keyExtractor(element);
    grouped.putIfAbsent(key, () => []).add(element);
  }
  return grouped;
}