filterBy method

Map<String, dynamic> filterBy(
  1. String field,
  2. String value
)

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;
}