groupBy<K> method
Groups list items by a key returned from keySelector.
Full Example:
final people = [
{"name": "Alice", "city": "Tokyo"},
{"name": "Bob", "city": "Osaka"},
{"name": "Charlie", "city": "Tokyo"},
];
final grouped = people.groupBy((p) => p["city"]);
grouped result:
{
"Tokyo": [
{"name": "Alice", "city": "Tokyo"},
{"name": "Charlie", "city": "Tokyo"}
],
"Osaka": [
{"name": "Bob", "city": "Osaka"}
]
}
Implementation
Map<K, List<T>> groupBy<K>(K Function(T) keySelector) {
final map = <K, List<T>>{};
for (final item in this) {
final key = keySelector(item);
map.putIfAbsent(key, () => []).add(item);
}
return map;
}