如何在Dart中用indexWhere查找含指定键的Map所在列表索引
在Dart中用indexWhere查找包含指定键的列表元素索引
你可以按以下方式实现需求:
- 先明确你的列表类型为
List<Map<String, dynamic>>(因为每个元素是包含单个键值对的Map); - 调用
indexWhere方法,在回调函数里检查每个Map是否包含目标键。
完整代码示例
void main() { // 定义你的数据列表 final List<Map<String, dynamic>> gameStats = [ {'game29HakakianSchopf': {'assists': 0, 'points': 0, 'rebounds': 0, 'fouls': 3}}, {'game30HakakianSchopf': {'assists': 0, 'points': 0, 'rebounds': 0, 'fouls': 3}} ]; // 指定要查找的目标键 const targetKey = 'game29HakakianSchopf'; // 使用indexWhere查找对应索引 int targetIndex = gameStats.indexWhere((element) => element.containsKey(targetKey)); // 处理查找结果 if (targetIndex != -1) { print('目标键所在索引:$targetIndex'); } else { print('未找到指定键'); } }
关键说明
indexWhere会遍历列表,对每个元素执行回调逻辑,返回第一个满足条件的元素索引;- 如果遍历结束后没有找到符合条件的元素,
indexWhere会返回-1,建议对这种情况做判断处理; - 借助Map的
containsKey方法,能直接判断当前元素是否包含目标键,逻辑简洁高效。
内容的提问来源于stack exchange,提问作者splurring
相关产品推荐
相关产品推荐

