flutter - 遍历列表和地图列表
问题描述
我有名为 list 的字符串列表和名为 type 的地图列表
列表 ['value1', 'value2']
类型 [{data: 'value1', isSelected: false},{data: 'value5', isSelected: false}]
如果列表中的值等于 type.data 值,我想更新“类型”列表中的 isSelected 值
我设法做到了
if (type != null) {
for (var l in list) {
for (var t in type) {
if (l.data == t) {
l.isSelected = true;
}
}
}
}
有没有更体面的方法呢?
解决方案
您可以使用for
withcontains
和当发现数据时无需继续。因此,打破循环。
var list = ['value1', 'value2'];
var type = [{data: 'value3', isSelected: false}, {data: 'value4', isSelected:false}]
编辑
for (object in type) {
if (list.contains(object['data'])) { // changed from indexOf as recommended in comments
object['isSelected'] = true;
break:
}
});
推荐阅读
- ios - 使用gmail打开时如何使深层链接颤动?
- swift - SwiftUI 中令人抓狂的错误似乎没有意义。编译器有错误吗?
- javascript - 日期格式的名称是什么,如何仅在 html 中显示日期?2020 年 8 月 24 日星期一 00:00:00 GMT+0800(新加坡标准时间)
- javascript - 禁用选项时,选择不适用于 IE 11 - jQuery
- elasticsearch - 用于插入和更新的 Elastic Logstash 脚本
- javascript - 如何在javascript中单击操作时为DOM中新添加的元素编写回调?
- spring - Activiti - 结束进程实例结束的结束事件的名称
- android - 如何修复“无法加载类 'com.android.ide.common.repository.GradleVersion'。” 在 Android Studio 版本 4.0.1
- selenium - 产生相同结果的 3 个不同 Xpath 之间的差异
- php - PHP move_uploaded_file throw else