gpt4 book ai didi

arrays - 从Dart map 迭代和提取键/值的最佳方法?

转载 作者:行者123 更新时间:2023-12-03 03:32:53 25 4
gpt4 key购买 nike

GIVEN Map<String, List<String>>其中:

  • 关键是团队代码
  • 该值是玩家名称列表。

  • 何时
    当用户选择一个名称时,我需要通过与玩家列表进行比较来输出团队代码(可能有重复的名称和其他我尚未充分考虑的东西)。
    我确实找到了可行的方法,但是不确定当数据量增加时它是否能正常工作。
    //Team Map Example    
    var teamMap = {
    "TeamFoo": ["Bob", "John", "Jill"],
    "TeamBar": ["Mike", "Fred"]
    };

    //Loop Example
    teamMap.forEach((key, value) {
    if (value.indexOf(_lastName) >= 0) {
    teamName = key;
    }
    });
    有没有更好的方法来编写此功能以提高速度或可读性?

    最佳答案

    我要做的一项改进是在找到值时停止。如果重复,则您的方法是合适的,因为无论如何您都必须迭代整个 map 。
    如果没有重复,这就是我会怎么做。
    代码:

    String teamCode = teamMap.keys.firstWhere((key) => teamMap[key].contains(_lastName));

    说明: teamMap.keys =>返回 map 的键列表 teamMap[key] =>返回与该键对应的玩家列表
    对于每个键
    检查相应的列表是否包含 _lastName teamMap[key].contains(_lastName)); 但是,要处理重复项,我建议添加“#”,然后添加重复项计数。如果那不适合玩家的名字,那就用你的想象力消除重复。
    让我知道您是否遇到任何错误。
    另外,如果您喜欢常规Map / List / Set方法 i'd recommend this page的可视化文档。

    关于arrays - 从Dart map 迭代和提取键/值的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62888994/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com