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
相关产品推荐
相关产品推荐

