Search code examples
flutterdictionarydartsum

Summarize List<Map<String,dynamic> elements


I have a sales List like below:

 List<Map<String,dynamic>> sales = [
    {'paid': 2000, 'name': 'person1'},
    {'paid': 2500, 'name': 'person2'},
    {'paid': 5600, 'name': 'person1'},
    {'paid': 974.0, 'name': 'person2'},
  ];

I want to sum persons' paid amount and show in a ListView.builder like below:

person1 : 7600 person2 : 3474

I need a hand with how to calculate every individual person inside a map in Dart/Flutter.

Thanks in advance.


Solution

  • this code might help you:

       void main() {
          List<Map<String, dynamic>> sales = [
            {'paid': 2000, 'name': 'person1'},
            {'paid': 2500, 'name': 'person2'},
            {'paid': 5600, 'name': 'person1'},
            {'paid': 974.0, 'name': 'person2'},
          ];
        
          Map map = Map();
          for (var sale in sales) {
            if (map.keys.contains(sale['name'])) {
              map[sale["name"]] = map[sale["name"]] + sale['paid'];
            } else
              map[sale["name"]] = sale['paid'];
          }
          print(map.toString());
        }
    

    where the output would be:

    {person1: 7600, person2: 3474.0}