【问题标题】:How to return a list of map keys if they are true如果它们为真,如何返回映射键列表
【发布时间】:2022-08-11 01:06:49
【问题描述】:

我有以下地图,我需要返回 2 个列表。

列表将包含映射KEYS,一个只有真values,另一个列表只有假或空values

Map<int, bool?> weekdaymap = {
      0: _habit.wd1,
      1: _habit.wd2,
      2: _habit.wd3,
      3: _habit.wd4,
      4: _habit.wd5,
      5: _habit.wd6,
      6: _habit.wd7,
    };

我是 dart/flutter 的新手,我找不到正确的方法。

    标签: flutter dart


    【解决方案1】:
     List<int> trueKeys = [];
     List<int> falseKeys = [];
     weekdaymap.forEach((k, v) {
           if(v == true){
             trueKeys.add(k);
          }else if(v == false){
             falseKeys.add(k);
          }else{
             //Handle For null cases
          }
     });
    

    【讨论】:

    • 对不起,也许我解释错了问题。不管它是 map 并且您使用 Key 或 List [boolhabit1,boolhabit2,boolhabit3, etc] 并使用索引,我需要的是两个列表,一个包含所有具有 true 值的键或索引,另一个包含所有那些 false价值观
    • 我想我误解了你的问题。我已经更新了它。
    • 在职的!!这很简单,但我没有意识到可以这样做!谢谢你!
    【解决方案2】:

    尝试这个

    weekdaymap.keys.firstWhere((k) => weekdaymap[k] == true,orElse: () => -1)
    

    如果所有值为 false 或 null,它将返回 -1

    【讨论】:

    • 我试过这个,但我无法将它转换为列表。也许这很容易,但我找不到。我知道这是只找到满足条件的第一个值。
    猜你喜欢
    • 2011-09-29
    • 1970-01-01
    • 2020-04-05
    • 2015-04-27
    • 2017-06-01
    • 2021-10-15
    • 2012-10-12
    • 2020-08-08
    • 1970-01-01
    相关资源
    最近更新 更多