Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

203
Visualizações
¿Son posibles los operadores ternarios en el operatorio ternario?

¿Por qué esta línea no funciona?

 x > highNum ? highNum = x : y > highNum ? highNum = y : highNum = highNum

En este caso, esta línea está en un bucle y x e y son diferentes cada vez. Traté de encontrar el número más alto al final y pensé que esto funcionaría. En mi opinión, esto se lee como: si x es más alto que el número alto, el número alto debería recibir el valor de x asignado, si no es así. es mas grande? en caso afirmativo, y debería ser el nuevo número alto. que no. no cambie el número alto

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

respuesta corta:

Sí lo son.

respuesta larga:

Sí, pero también debería preocuparse por la legibilidad. Su código hace exactamente lo que espera que haga, pero otros desarrolladores (y tal vez usted en el futuro) podrían tener problemas para entenderlo, por lo que le recomiendo enfáticamente que nunca use operadores ternarios anidados, y solo los use cuando tiene más sentido que una simple declaración if else. Y si después de todo esto todavía quieres usarlo, al menos agrega un comentario explicando para qué sirve. ex:

 let highNum for(let line of lines){ const {x, y} = line; // use bubble sort to find the highest number x > highNum ? highNum = x : y > highNum ? highNum = y : highNum = highNum }

editar: Además, esto tampoco es encontrar correctamente el número más alto, como dice "trincot"

over 4 years ago · Santiago Trujillo Relatório

0

Hay un valor alto potencial que podría pasar por alto: cuando x > highNum , pero también y > x , no verá que y es realmente el más alto, ya que la expresión ya habrá decidido que highNum debería obtener el valor de x .

Puedes hacer esto bastante simple con Math.max :

 highNum = Math.max(x, y, highNum);
over 4 years ago · Santiago Trujillo Relatório

0

Sí, pero necesitará corchetes, principalmente para facilitar la lectura:

 (x > highNum) ? (highNum = x) : ((y > highNum) ? (highNum = y) : (highNum = highNum));

En su caso, parece que es mejor dividirlo en varias declaraciones para evitar confusiones:

 if (x > highNum) { highNum = x; } else if (y > highNum) { highNum = y; }

aunque eso no cabe en una sola expresión, pero tal vez sea una señal de que su código se está volviendo demasiado complejo/ilegible.

Si solo está buscando el número más alto, quizás Math.max sea todo lo que necesita, es decir, Math.max(x, y, highNum) .

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda