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()