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

133
Visualizações
¿Existe una manera más fácil de combinar varias declaraciones if usando una matriz en javascript?

Tengo un formulario donde un usuario ingresa su dirección. Esto luego compara su dirección con varios destinos en el Reino Unido para ver qué ciudad es la más cercana.

Quiero que cada destino tenga precios diferentes, por ejemplo, Londres, Reino Unido = 50, Birmingham, Reino Unido = 200, etc.

He escrito una instrucción if bastante rudimentaria que verifica la ciudad que se devuelve y calcula el precio. Sin embargo, me pregunto si hay una solución más ordenada para esto, ya que se siente un poco obtuso:

 if(closestCities[0].cityName == "Coventry, UK") { travelExpenses = 10; } else if (closestCities[0].cityName == "London, UK"){ travelExpenses = 50; } else if (closestCities[0].cityName == "Margate, UK"){ travelExpenses = 100; } else if (closestCities[0].cityName == "Bristol, UK"){ travelExpenses = 20; } else if (closestCities[0].cityName == "Tamworth, UK"){ travelExpenses = 15; } else if (closestCities[0].cityName == "Birmingham, UK"){ travelExpenses = 200; } else { travelExpenses = 30; }
about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

¿Por qué no creas un objeto?

 let map = { "Margate, UK": 100, "Bristol, UK": 20 // etc. }

Parece que también quieres un valor predeterminado. Creo que en su caso podría utilizar el operador coalescente nulo :

El operador coalescente nulo (??) es un operador lógico que devuelve su operando del lado derecho cuando su operando del lado izquierdo es nulo o indefinido, y de lo contrario devuelve su operando del lado izquierdo

 travelExpenses = map[closestCities[0].cityName] ?? 30;
about 4 years ago · Juan Pablo Isaza Relatório

0

También podrías definir un diccionario para tus gastos

 let expenses = { "Coventry, UK": 10, "London, UK": 20, ... } let travelExpenses = expenses[closestCities[0].cityName] || 30;

Si tienes alguna ciudad, con gastos 0 , tienes que hacerlo de la siguiente manera

 let travelExpenses = expenses[closestCities[0].cityName]; if (travelExpenses === undefined) travelExpenses = 30;
about 4 years ago · Juan Pablo Isaza Relatório

0

Puede intentar destructuring el objeto junto con la declaración de switch para que sea altamente legible.

 const { cityName } = closestCities[0] switch (cityName) { case "Coventry, UK": travelExpenses = 10; break; case "London, UK": travelExpenses = 20 break; ... }
about 4 years ago · Juan Pablo Isaza 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