groupBy<S> method
returns Map<S,Iterable
example
[1,2,3,4,5].groupBy((element)=> element % 2) // {true: [2,4],false: [1,3,5]};
Implementation
Map<S, Iterable<T>> groupBy<S>(S Function(T) f) {
final m = <S, Iterable<T>>{};
return fold<Map<S, Iterable<T>>>(m, (acc, element) {
final key = f(element);
return acc.containsKey(key)
? {
...acc,
key: [...acc[key]!, element]
}
: {
...acc,
key: [element]
};
});
}