首页 > 解决方案 > 遍历列表和地图列表

问题描述

我有名为 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;
      }
    }
  }
}

有没有更体面的方法呢?

标签: flutterdart

解决方案


您可以使用forwithcontains和当发现数据时无需继续。因此,打破循环。

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:
  }
});

推荐阅读