groupByTransform<K, U> method

  1. @useResult
Map<K, List<U>> groupByTransform<K, U>(
  1. K keyOf(
    1. T
    ),
  2. U valueTransform(
    1. T
    )
)

Groups by keyOf and transforms values with valueTransform. Returns Map<K, List

Implementation

@useResult
Map<K, List<U>> groupByTransform<K, U>(K Function(T) keyOf, U Function(T) valueTransform) {
  final Map<K, List<U>> result = <K, List<U>>{};
  for (final T element in this) {
    final K key = keyOf(element);
    result.putIfAbsent(key, () => <U>[]).add(valueTransform(element));
  }
  return result;
}