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
¿Hay alguna manera de usar una declaración de cambio en JavaScript con una variable para mostrar texto basado en otra variable?

Estoy tratando de obtener una declaración de cambio para usar una variable llamada "promedio" para el promedio de cinco calificaciones. Las cinco calificaciones se suman para obtener el total y luego se dividen por cinco para obtener el promedio. Me gusta esto:

 avg = +grade_one + +grade_two + +grade_three + +grade_four + +grade_five;

El interruptor debe mostrar cinco casos, uno para cada rango de calificación (es decir, 90 % a 100 % = A). Así como el propio porcentaje.

Intenté usar casos con valores numéricos como "caso 1", por ejemplo, y luego imprimí dos líneas de texto, pero eso no funcionó.

¿Debería intentar usar una estructura if-else antes del cambio para establecer a qué equivale cada porcentaje de calificación en una carta, o eso no funcionará?

Aquí está el código para el interruptor.

 switch (avg) { case 1: letter = "A"; per = "90-100"; document.write("Based on your semester average, your grade falls between " + per + "%"); document.write("you earned a " + letter); break; case 2: letter = "B"; per = "80-89.9"; document.write("Based on your semester average your grade falls between " + per + "%"); document.write("you earned a " + letter); break; case 3: letter = "A"; per = "70-79.9"; document.write("Based on your semester average your grade falls between " + per + "%"); document.write("you earned a " + letter); break; case 4: letter = "D"; per = "60-69.9"; document.write("Based on your semester average your grade falls between " + per + "%"); document.write("you earned a " + letter); break; case 5: letter = "F"; per = "Below 60%"; document.write("Based on your semester average your grade falls between " + per + "%"); document.write("you earned a " + letter); default: document.write("Invalid Entry"); break; }
over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

No debe usar un switch para eso: el código para cada caso es demasiado similar. La diferencia está solo en unos pocos valores, que puede almacenar en una matriz. Luego busque en esa matriz en qué segmento cae el promedio y construya la salida a partir de eso.

Además, no use document.write para esto. En su lugar, cree un elemento (como un div ) que contendrá el mensaje de salida.

No sé cuál es el contexto de tu ejercicio, pero supongo que hay algunas entradas con los 5 grados. Cárguelos como una matriz (no como 5 variables distintas) y calcule el promedio de forma genérica (no vinculado a 5).

Aquí hay un código sugerido en un fragmento ejecutable:

 let thresholds = [100.1, 90, 80, 70, 60, 0]; let inputs = document.querySelectorAll("input"); let output = document.querySelector("div"); let button = document.querySelector("button"); button.addEventListener("click", function () { let grades = Array.from(inputs, inp => +inp.value); let avg = grades.reduce((a, b) => a + b) / grades.length; let i = thresholds.findIndex(min => avg >= min); let letter = "-ABCDF"[i]; let low = thresholds[i]; let high = thresholds[i - 1] - 0.1; let msg = `Based on your semester average, your grade falls between ${low}-${high}%\nYou earned a ${letter}.`; output.textContent = msg; });
 Grades: <ul> <li><input type="number" min="0" max="100" value="80" size="4"> <li><input type="number" min="0" max="100" value="80" size="4"> <li><input type="number" min="0" max="100" value="80" size="4"> <li><input type="number" min="0" max="100" value="80" size="4"> <li><input type="number" min="0" max="100" value="80" size="4"> </ul> <button>Get grade</button> <div></div>

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