groupBy<K> method

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

Groups elements by a key derived from keyOf.

[1, 2, 3, 4].groupBy((e) => e.isEven ? 'even' : 'odd');
// {odd: [1, 3], even: [2, 4]}

Implementation

Map<K, List<T>> groupBy<K>(K Function(T) keyOf) {
  final map = <K, List<T>>{};
  for (final e in this) {
    (map[keyOf(e)] ??= []).add(e);
  }
  return map;
}