Tracks
/
jq
jq
/
Temario
/
Condicionales
Co

Condicionales en jq

7 ejercicios

Acerca de Condicionales

La expresión if

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. En caso contrario, evalúa C. La entrada del filtro if se pasa 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 instrucciones siguientes son equivalentes.

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

Condicionales anidados

Se pueden añadir 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, el string vacío, el array vacío y el objeto vacío.

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. 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 null.

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 podrían esperar una mayor variedad de comandos condicionales, como cond, case, switch, when, unless, un operador ternario, etc. Los operadores anteriores son todo lo que ofrece jq.

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

Aprende Condicionales

La práctica está bloqueada

Desbloquea 6 ejercicios más para practicar Condicionales