groupBy<K> method

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

Groups elements by the value returned by keyOf.

Example:

['cat', 'car', 'dog'].groupBy((s) => s[0]);
// {'c': ['cat', 'car'], 'd': ['dog']}

Implementation

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