【问题标题】:Dart: find the key from the value and add to a new listDart:从值中找到键并添加到新列表中
【发布时间】:2021-01-03 21:50:51
【问题描述】:

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

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

b = [1, 2],

我想从list b 的值中搜索list a 上的名称。这样list c就变成了,

[paul, anna]

我成功循环了list b。但是,我无法查找值并返回要添加到 list c 的密钥。

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

我知道我可以使用 .addAll 添加到 list c。如何返回list a的键值?

【问题讨论】:

  • 你确定你有一个 List> 而不仅仅是一个 Map
  • 数据是从 mongoDB 来的。

标签: flutter dart


【解决方案1】:

也许你可以试试这个

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】:

    这是另一种解决方案:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-22
      • 1970-01-01
      相关资源
      最近更新 更多