遍历列表和地图列表

时间:2020-02-03 01:41:05

标签: flutter dart

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

是否有更体面的方法?

2 个答案:

答案 0 :(得分:2)

您可以将forcontains一起使用,并且当发现数据时,无需进一步操作。因此,请打破循环。

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

答案 1 :(得分:0)

如果只需要知道列表数组中是否包含数据值,则只需要1个循环:

var list = ['value1', 'value2'];
var type = [{data: 'value3', isSelected: false}, {data: 'value4', isSelected:false}]

for (t in type) {
  if (list.contains(t.data)) { // changed from indexOf as recommended in comments
    t.isSelected = true;
  }
}