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

Dart迭代中如何获取并判断前一次迭代的元素值?

可以实现这个需求

只需要在遍历过程中维护一个变量记录前一次迭代的brandName,每次迭代时和当前元素的brandName做对比,就能实现对应的逻辑。

修改后的代码示例:

var modelMap = parsedJson.values;
String? previousBrandName; // 存储上一次迭代的品牌名称
List<String> modelList = [];

modelMap.forEach((element) {
  String currentBrandName = element["brandName"];
  String modelName = element["ModelName"];
  
  // 仅当前一次品牌名称存在且与当前相等时,添加当前型号
  if (previousBrandName != null && previousBrandName == currentBrandName) {
    modelList.add(modelName);
  }
  
  // 更新前一次品牌名称为当前值,供下一次迭代对比
  previousBrandName = currentBrandName;
});

补充说明

  • 初始时previousBrandName为null,对应第一次迭代的情况,此时没有前一次元素,所以不会执行添加操作;如果需要第一次迭代也添加(比如默认第一个元素要保留),可以把判断条件改成:
    if (previousBrandName == null || previousBrandName == currentBrandName) {
      modelList.add(modelName);
    }
    
  • 确保element["brandName"]和element["ModelName"]的键名与实际JSON结构一致,避免键名错误导致取值异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 17:56:06