Estoy confundido con el signo de interrogación y los dos puntos en ternario, ¿alguien puede explicar cómo hacerlo correctamente?
const bill = 220; const fifty = 50; const oneHundred = 100; const twoHundred = 200; if(bill < fifty) console.log(`(A) bill is less than 50`); else if(bill < oneHundred) console.log('(B) bill is greater than 50'); else if(bill < twoHundred) console.log('(C) bill is greater than 100'); else if(bill > twoHundred) console.log('(D) bill is greater than 200');Operador condicional (ternario)
El operador condicional (ternario) es el único operador de JavaScript que toma tres operandos: una condición seguida de un signo de interrogación (?), luego una expresión para ejecutar si la condición es verdadera seguida de dos puntos (:) y finalmente la expresión para ejecutar si la condición es falsa. Este operador se usa con frecuencia como una alternativa a una instrucción if...else.
const bill = 220; const fifty = 50; const oneHundred = 100; const twoHundred = 200; console.log( bill < fifty ? "(A) bill is less than 50" : bill < oneHundred ? "(B) bill is greater than 50" : bill < twoHundred ? "(C) bill is greater than 100" : "(D) bill is greater than 200" );La manera simple de explicar es ver con este formulario
condition ? (if condition == true) : (if condition == false)Otra cosa que necesita ahora es que el ternario "devuelva" los datos dependiendo de la condición
let age = 30 let message = age > 18 ? "Can pass" : "Can't pass" console.log(message) // Output: Can passPodría recibir un mensaje de un operador ternario.
Para una mejor lectura (y comprensión) la expresión está anidada para los niveles.
const bill = 220, fifty = 50, oneHundred = 100, twoHundred = 200, message = bill < fifty ? '(A) bill is less than 50' : bill < oneHundred ? '(B) bill is greater than 50' : bill < twoHundred ? '(C) bill is greater than 100' : bill > twoHundred ? '(D) bill is greater than 200' : ''; console.log(message);