traduccion - unirse a la lista de elementos booleanos groovy
booleanos javascript (3)
tengo una lista de elementos booleanos:
def list=[true,false,true,true]
Pregunto si existe un método como el siguiente:
list.joinBoolean(''&&'')
<falso
Porque: true && false && true && true = false
list.joinBoolean(''||'')
<verdadero
Porque: cierto || falso || verdadero || verdadero = verdadero
si no existe, sé cómo hacer el ciclo para obtener el resultado esperado;
Y
boolean tmp=true;
list.each{e->
tmp=tmp && e;
}
return tmp;
O
boolean tmp=false;
list.each{e->
tmp=tmp || e;
}
return tmp;
No, no hay tal método. Pero puedes hacerlo sin cada bucle:
def list=[true,false,true,true]
list.any{it==true} // will work as list.joinBoolean(''||'')
list.every{it==true} // will work as list.joinBoolean(''&&'')
O:
list.inject { a, b -> a && b }
list.inject { a, b -> a || b }
si la list
puede estar vacía, debe usar la forma de inyección más larga de:
list.inject(false) { a, b -> a && b }
list.inject(false) { a, b -> a || b }
O use any
y every
métodos a continuación
Por cierto
Las funciones mencionadas en las otras respuestas funcionan como:
list.any()
list.every()
O (forma más larga)
list.any { it == true }
list.every { it == true }
any
y every
métodos pueden ser útiles aquí