Heads or Tails es-419 Explainer

Explicador de Cara o cruz

Objetivo de este acertijo: Usar el operador ternario en lugar de una if…else statement.

Tutorial de la solución:

Para revisarla, una if…else statement adquiere este formato:


if (thisIsTrue) {

doThis

} else {

doThisInstead

}

Un operador ternario reemplaza este formato con algo mucho más corto:


isThisTrue ? doThis : doThisInstead

El código que va antes de? se llama prueba. Si la prueba devuelve ‘true’, entonces se ejecutará el código después de ?. Si la prueba devuelve false, entonces se ejecutará el código después :. Los operadores ternarios son útiles porque usan menos líneas de código que una if…else statement; sin embargo, pueden ser más difíciles de leer para los humanos.

La variable coin usa la función pickRandom() para elegir al azar entre los strings 'heads' y 'tails'. Esta variable luego se usará en nuestro operador ternario.

Se proporciona un operador ternario completo como ejemplo. Probará si la variable coin tiene el valor 'heads'. Si esto es verdad, entonces drawBoxes('rwr rrr rwr') se ejecutará. Si la variable coin es 'tails', entonces la prueba devolverá falso, y drawBoxes('bbb wbw wbw') se ejecutará.

Para completar este acertijo, agrega un segundo operador ternario. La prueba será la misma, pero esta vez print('heads') (imprimirá) en la consola si la prueba de coin === 'heads' es verdadera, o print('tails') en la consola si la prueba es falsa.

También puedes completar el acertijo al probar si coin === 'tails', siempre que también se use la declaración de impresión correcta.

Solución del código de ejemplo:


var coin = pickRandom([

'heads',

'tails'

]);

coin === 'heads' ? drawBoxes('rwr rrr rwr') : drawBoxes('bbb wbw wbw');

coin === 'heads' ? print('heads') : print('tails');

Conceptos de JavaScript: operador ternario, if statements, funciones, arreglos

Conceptos de Grasshopper: print(), pickRandom()