我有一个名为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;
}
}
}
}
是否有更体面的方法?
答案 0 :(得分:2)
您可以将for
与contains
一起使用,并且当发现数据时,无需进一步操作。因此,请打破循环。
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;
}
}