Tracks
/
jq
jq
/
Temario
/
Condicionales
Co

Condicionales en jq

7 ejercicios

Acerca de Condicionales

La expresión condicional

La expresión condicional de jq es if A then B else C end.

if-then-else es un filtro como todas las funciones integradas de jq: recibe una entrada y produce una salida.

Si la expresión A produce un valor «verdadero», el filtro if evalúa B. De lo contrario, evalúa C. La entrada del filtro if se pasará a B o a C.

42 | if . < 50 then "small" else "big" end      # => "small"
5 | if . % 2 == 0 then . / 2 else . * 4 end     # => 20
Note

La cláusula else es opcional; las dos sentencias siguientes son equivalentes.

if A then B else . end
if A then B end

Condicionales anidados

Puedes agregar más condiciones con elif.

42 | if . < 33 then "small"
     elif . < 66 then "medium"
     else "big"
     end
# => "medium"

Usa tantas cláusulas elif como necesites.

Veracidad

Los únicos valores «falsos» en jq son: false y null. Todo lo demás es «verdadero», incluso el número cero y el string vacío, el array y el objeto.

Operadores booleanos

Los operadores booleanos and y or se pueden usar para construir consultas complejas.

42 | if . < 33 or . > 66 then "big or small"
     else "medium"
     end

Para negar, usa not. Esto es un filtro, no un operador.

42 | if (. < 33 or . > 66 | not) then "medium"
     else "big or small"
     end

El operador alternativo

El operador alternativo te permite especificar un valor «predeterminado» si una expresión es falsa o nula.

A // B

# This is identical to
if A then A else B end

Para demostrarlo

[3, 5, 18] | add / 2       # => 13
[]         | add / 2       # => error: null (null) and number (2) cannot be divided
[]         | add // 0 / 2  # => 0

¿Hay más?

Quienes vienen de otros lenguajes de programación podrían esperar una mayor variedad de comandos condicionales, como cond, case, switch, when, unless, un operador ternario, etc. Los operadores de la lista anterior son todo lo que jq ofrece.

Editar en GitHub El enlace se abre en una ventana o pestaña nueva

Aprende Condicionales

La práctica está bloqueada

Desbloquea 6 ejercicios más para practicar Condicionales