如何在嵌套Map中筛选并返回完整的Map元素
嵌套Map筛选并返回完整键值对的解决方法
你的代码目前仅筛选出了符合条件的Map键,所以输出只有键字符串。要返回包含完整键值对的Map,需要调整实现逻辑:
原代码问题点
- 重复声明了
temp变量,会导致语法错误 where方法的语法书写错误(箭头函数位置不对)- 仅对键进行筛选,未构建包含对应值的新Map
修正后的代码
Map<String, Map<int, int>> temp = { "Basic Terms": {1: 0}, "Table and Column Naming Rules": {1: 1} }; // 筛选键中包含"basic"的条目,转换为新Map var filteredTemp = Map.fromEntries( temp.entries.where((entry) => entry.key.toLowerCase().contains("basic")) ); print(filteredTemp);
代码说明
- 用
temp.entries获取Map的所有键值对条目,而非单独的键集合 - 通过
where筛选条目时,用toLowerCase()实现不区分大小写的匹配(如果需要严格区分大小写,去掉即可) Map.fromEntries将筛选后的条目集合转换成新的Map,保留完整的键值对结构
输出结果
I/flutter (30857): {Basic Terms: {1: 0}}
内容的提问来源于stack exchange,提问作者SPIDEY
相关产品推荐
相关产品推荐

