代码之家  ›  专栏  ›  技术社区  ›  sudoExclamationExclamation

Dart:如何获取地图列表中所有列表值的总长度?

  •  -1
  • sudoExclamationExclamation  · 技术社区  · 4 年前

    我有这个:

    final data = [
        {
          'name': 'Team A',
          'team': ['Klay Lewis', 'Ehsan Woodard', 'River Bains']
        },
        {
          'name': 'Team B',
          'team': ['Toyah Downs', 'Tyla Kane']
        },
        {
          'name': 'Team C',
          'team': [
            'Jacky Chan',
            'Yalor Rowds',
            'Tim Bourla',
            'Levis Strauss',
            'Jane Smow'
          ]
        }
      ];
    

    我想找到最快的方法得到所有团队成员的总数。在上面的例子中,它将是3+2+5=10个总成员。

    真实世界的数据将有数千个团队,因此需要最快的方式。

    2 回复  |  直到 4 年前
        1
  •  1
  •   Abion47    4 年前

    fold 将完成工作。

    final int totalLength = data.fold(0, (sum, obj) => sum + obj['team'].length);
    
        2
  •  1
  •   Ουιλιαμ Αρκευα    4 年前
    import 'package:collection/collection.dart';
    
    const data = [...];
    
    void main(List<String> args) {
      var members = data.map((e) => (e['team'] as List).length).sum;
      print(members);
    }