type groupBy
Returns a Reducer that uses the valueToKey function to calculate a key for each value, and feeds the tuple of the key and the value to the collector reducer. Finally, it returns the output of the collector. If no collector is given, the default collector will return a JS multimap of the type Map<K, V[]>.
example
Stream.of(1, 2, 3).groupBy((v) => v % 2)
// => Map {0 => [2], 1 => [1, 3]}
Definition
groupBy: {
<T, K, R, T2 extends readonly [K, T] = [K, T]>(valueToKey: (value: T, index: number) => K, options: {
collector: Reducer<[K, T] | T2, R>;
}): Reducer<T, R>;
<T, K>(valueToKey: (value: T, index: number) => K, options?: {
collector?: undefined;
}): Reducer<T, Map<K, T[]>>;
}