Flutter/Dart how to groupBy list of maps

后端 未结 5 1712
后悔当初
后悔当初 2020-12-01 23:26

I have this list of maps.

[
    {title: \'Avengers\', release_date: \'10/01/2019\'},
    {title: \'Creed\', release_date: \'10/01/2019\'}
    {title: \'Juman         


        
5条回答
  •  北荒
    北荒 (楼主)
    2020-12-02 00:15

    It may not be the best solution. But it can give you an idea

    List arrayData = [
      {"name": 'John', "gender": 'male'},
      {"name": 'James', "gender": 'male'},
      {"name": 'Mary', "gender": 'female'}
    ];
    

    Retrieve list ​​by gender:

    List males = arrayData.where((o) => o['gender'] == "male").toList();
    List females = arrayData.where((o) => o['gender'] == "female").toList();
    

    Make new map with desired format:

    List result = [
      {
        "male": males.map((f) => {"name": f['name']}).toList()
      },
      {
        "female": females.map((f) => {"name": f['name']}).toList()
      }
    ];
    

    print:

    debugPrint('${result}');
    

    result:

    [{male: [{name: John}, {name: James}]}, {female: [{name: Mary}]}]
    

提交回复
热议问题