filterBy method
Filters the map of maps by a specific field value.
The filterBy method filters the entries of the map based on the provided
field value. It returns a new map containing only the entries where the
specified field matches the provided value.
Args: field (String): The field name to filter by.
Returns: Map<K, Map<String, dynamic>>: A new map containing filtered entries.
Implementation
Map<String, dynamic> filterBy(String field, String value) {
Map<String, dynamic> filtered = {};
this.forEach((day, activities) {
Map<String, dynamic> filteredActivities = {};
activities.forEach((id, activity) {
if (activity[field] == value) {
filteredActivities[id] = activity;
}
});
if (filteredActivities.isNotEmpty) {
filtered[day] = filteredActivities;
}
});
return filtered;
}