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

Dart:从值中找到键并添加到新列表中

  •  0
  • chichi  · 技术社区  · 4 年前

    我正在尝试搜索某些值并添加到列表中。

    a = [
       {anna: 2},
       {jane: 9},
       {paul: 1},
    ]
    
    b = [1, 2],
    

    我想在上面搜索这个名字 list a 从价值 list b list c 变成,

    [paul, anna]
    

    我成功地循环了 列表b . 但是,我无法查找值并返回要添加到 列表c

    List.generate(
            b.length, (index) {
          <----- stuck ----->
        });
    

    我知道我可以用。addAll添加到 列表c 列表a

    1 回复  |  直到 4 年前
        1
  •  1
  •   dm_tr    4 年前

    也许你可以试试这个

    var a = [
      {"anna": 2},
      {"jane": 9},
      {"paul": 1},
    ];
    
    var b = [1, 2];
    
    List c = [];
    for (var item in a) if(b.contains(item.values.first)) c.add(item.keys.first);
    
        2
  •  1
  •   Ουιλιαμ Αρκευα    4 年前

    var names = a.where((e) => b.contains(e.values.first)).map<String>((e) => e.keys.first).toList();