You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter如何从Map组成的List中提取所有word字段值生成新列表

实现方案

错误原因

你之前的写法不生效是因为 englishFrequencyWordList 是List集合类型,本身没有定义word属性,只有集合内存储的每一个Map元素才持有word对应的键值,需要遍历每个元素逐个取值后汇总为新列表。

最优实现(Dart内置迭代方法)

直接调用List的map方法完成遍历转换,最后调用toList()转为List类型即可:

List<String> newWordList = englishFrequencyWordList.map((mapItem) => mapItem['word'] as String).toList();

如果需要兼容空安全、避免部分Map不存在word键导致的类型转换异常,可以调整为:

List<String> newWordList = englishFrequencyWordList.map((mapItem) => mapItem['word']?.toString() ?? '').toList();

基础循环实现(易理解版本)

如果不习惯函数式写法,可以用普通for-in循环实现,逻辑更直观:

List<String> newWordList = [];
for (var mapItem in englishFrequencyWordList) {
  newWordList.add(mapItem['word'] as String);
}

以上两种方式最终得到的newWordList就是你需要的['test5', 'test3', 'test2', 'test4', 'test1']结果。


内容的提问来源于stack exchange,提问作者Jan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 11:39:05