groupBy<K> method
Groups elements by the key produced by keyOf.
Returns a map from key to list of elements in encounter order. keyOf must not return null.
Example:
['a', 'ab', 'b'].groupBy((s) => s.length); // {1: ['a', 'b'], 2: ['ab']}
Implementation
@useResult
Map<K, List<T>> groupBy<K>(K Function(T) keyOf) {
final Map<K, List<T>> result = <K, List<T>>{};
for (final T element in this) {
final K key = keyOf(element);
result.putIfAbsent(key, () => <T>[]).add(element);
}
return result;
}