Flutter 如何从Dart中移除if-else链?
我在颤振应用程序中有一个很大的if-else链,它检查标题列表中的一系列条件。我试图找出如何在没有这一系列if-else语句的情况下处理这样一个链。地图是合适的,还是简单的开关盒Flutter 如何从Dart中移除if-else链?,flutter,if-statement,dart,Flutter,If Statement,Dart,我在颤振应用程序中有一个很大的if-else链,它检查标题列表中的一系列条件。我试图找出如何在没有这一系列if-else语句的情况下处理这样一个链。地图是合适的,还是简单的开关盒 if (listOfMaps[i]["title"] == "BPM LOW" && !activeAlarms.contains("BPM LOW")) { activeAlarms.add("BPM LOW
if (listOfMaps[i]["title"] == "BPM LOW" && !activeAlarms.contains("BPM LOW")) {
activeAlarms.add("BPM LOW");
} else if (listOfMaps[i]["title"] == "BPM HIGH" && !activeAlarms.contains("BPM HIGH")) {
activeAlarms.add("BPM HIGH");
} else if (listOfMaps[i]["title"] == "PIP LOW" &&
!activeAlarms.contains("PIP LOW")) {
activeAlarms.add("PIP LOW");
} else if (listOfMaps[i]["title"] == "PIP HIGH" &&
!activeAlarms.contains("PIP HIGH")) {
activeAlarms.add("PIP HIGH");
}
for(列表地图中的最终数据){
最终标题=数据[“标题”];
如果(!activeAlarms.contains(标题)){
activeAlarms.add(标题);
}
}
这里有一些代码。和输出:
flutter: listOfMaps:
flutter: [{title: BPM LOW}, {title: BPM HIGH}, {title: PIP LOW}, {title: PIP HIGH}]
flutter: activeAlarms before:
flutter: [BPM HIGH]
flutter: activeAlarms after:
flutter: [BPM HIGH, BPM LOW, PIP LOW, PIP HIGH]
就我个人而言,我会在第一个
if
之前将listofmap[I][“title”]
的结果保存在一个局部变量中,以便于阅读,并在数组和映射中保存大量查找。值得一提的是,3个否则的ifs几乎不是一个“巨大的链”,特别是在保证不同条件的情况下。请注意,如果listofmap[i]['title']
有其他可能的值,则情况并不完全相同。
flutter: listOfMaps:
flutter: [{title: BPM LOW}, {title: BPM HIGH}, {title: PIP LOW}, {title: PIP HIGH}]
flutter: activeAlarms before:
flutter: [BPM HIGH]
flutter: activeAlarms after:
flutter: [BPM HIGH, BPM LOW, PIP LOW, PIP HIGH]