Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
3
respuestas

[Duda] Operador ternario acerca de la sintaxis

Quisiera saber, de que otras manera se puede usar este operador, es decir en el ejemplo se uso de esta forma

alert(`Acertaste, el número es: ${numeroUsuario}. Lo hiciste en ${intentos} ${intentos == 1 ? 'vez' : 'veces' }`);

Pero quisiera saber si se puede usar con esta concatenación, no lo logre, pero si alguien pueda aportar a su solución gracias de antemano.

alert('Acertaste, el número es: '+numeroUsuario +'. Lo hiciste en '+ intentos + intentos == 1 ? 'vez' : 'veces' );
3 respuestas

Para concatenar algo a una cadena necesitas que sea un valor valido, es decir en este caso necesitas que primero se ejecute la parte del operador ternario para que te devuelva ya un String y no tengas problemas al concatenarlo, como lo tienes estas intentando concatenar una cadena con un condicional lo cual es erróneo.

Para corregirlo solo encierras entre parentesis toda la parte del condicional asgurandote que esto se ejecute antes de querer concatenarlo con tu cadena.


Código corregido

alert('Acertaste, el número es: ' + numeroUsuario + '. Lo hiciste en ' + intentos + (intentos === 1 ? ' vez' : ' veces'));



Aquí te doy algunos ejemplos de cuándo podría ser conveniente usar el operador ternario

1. Asignación condicional

// Ejemplo 1: Asignación de valor basado en la comparación
var edad = 20;
var estado = (edad >= 18) ? "Adulto" : "Menor de edad";
console.log(estado);  // Resultado: "Adulto"

2. Retorno condicional en funciones

// Ejemplo 2: Función que devuelve el máximo de dos números
function obtenerMaximo(a, b) {
    return (a > b) ? a : b;
}

console.log(obtenerMaximo(5, 8));  // Resultado: 8

Seguramente hay mas ejemplos donde es conveniente usarlo pero solo se me ocurren esos dos.

Por lo que entiendo, en este caso solo se puede usar dentro del template string, ya que no solo puedes mandar a llamar a una variable, sino igual puedes agregar código de JS (lo explicaban ad nauseam), como tal por lo que veo en tu código tu quieres mandar a imprimir el resultado del operador ternario, pero entonces tendrías que ponerlo fuera del alert

alert('Acertaste, el número es: '+numeroUsuario +'. Lo hiciste en '+ intentos + intentos == 1 ? 'vez' : 'veces' );

Lo primero no son comillas simples o apostrofes , lo obtienes con el juego de teclas ALT + 96 se parece pero es apostrofes invertidas. y tus variables deben esta dentro de las laves antepuestas del signo dolar. y en la ultima parte dentro de las llaves haces la nueva sintaxis tu comparacion luego el signo de pregunta ? luego el texto o calculo si la condición es verdadera , luego dos puntos para referenciar si es falsa y colocas el texto si la condición es falsa. y quedarías asi :

alert(Acertaste, el número es: ${numeroUsuario}. Lo hiciste en: ${intentos} ${intentos == 1 ? 'vez' : 'veces'});