有没有办法使用包含多个条件的条件来比较数组列表,代码看起来像这样

时间:2019-04-16 08:03:17

标签: grails groovy

ense.findAll { obj ->
    obj.otherDetails.findAll { od ->
        od.activityType.name.contains('Exporter') && od.activityType.name.contains('Distribution')
    }
}

此代码的预期输出必须检索具有Exporter && Distribution活动类型的所有enses

例如

ense 1 has [Exporter, Distribution]
ense 2 has [Hauler]
ense 3 has [Distribution, Exporter]
ense 4 has [Exporter, Refiller]

然后上面的代码必须只检索ense 1和ense 3

1 个答案:

答案 0 :(得分:1)

如果只想使用一个句子,只需使用正则表达式。在groovy中,您可以检查如下正则表达式:

def list = ['a','b','c','d']

list.each{
    println it ==~ /a|b/ 
}

so ==〜将检查正则表达式并返回一个布尔值,输出为:

true
true
false
false

正则表达式中的or为|,您只需将正则表达式替换为所需的逻辑即可(问题中确实不清楚)。