Flutter如何将含双键Map的列表转换为单个Map?
在Flutter中将包含Map的列表转换为单个Map的实现方法
你提供的results是嵌套列表结构(外层多了一层数组),需要先获取内层的元素列表,之后可以通过以下几种方式完成转换:
方法1:forEach循环(直观易懂)
// 提取内层的Map列表 List<Map> innerList = results.first; Map shorts = {}; innerList.forEach((item) { shorts[item['key']] = item['value']; });
方法2:fold方法(函数式聚合)
通过fold将列表直接聚合为目标Map,代码更紧凑:
List<Map> innerList = results.first; Map shorts = innerList.fold({}, (prev, item) { prev[item['key']] = item['value']; return prev; });
方法3:Map.fromEntries(最简洁写法)
利用Map.fromEntries结合列表map方法,一行代码完成转换:
List<Map> innerList = results.first; Map shorts = Map.fromEntries( innerList.map((item) => MapEntry(item['key'], item['value'])) );
补充说明
如果你的results本身是单层列表(即没有外层的[]包裹),直接移除results.first这一步即可。
内容的提问来源于stack exchange,提问作者Kevnlan
相关产品推荐
相关产品推荐

