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
¿Qué alternativa se puede usar en lugar de las declaraciones if / else para hacer que el código funcione de la misma manera?

Estoy tratando de encontrar la manera de hacer que el código funcione de la misma manera que se muestra en el código a continuación usando los otros métodos para las declaraciones if/else. Alguien me puede ayudar con eso? Tengo muchas más ciudades y claramente esto no va a escalar.

 function getCityNameFromURL() { var curURL = "" + Request.ServerVariables("URL"); var returnCityName = ""; curURL = curURL.toLowerCase(); if (curURL.indexOf("/sgncp/") != -1 || curURL.indexOf("/mlgct/") != -1) returnCityName = "London"; if ( curURL.indexOf("/berlinplus/") != -1 || curURL.indexOf("/berlinadmin/") != -1 ) returnCityName = "Berlin"; else if ( curURL.indexOf("/tokyoplus/") != -1 || curURL.indexOf("/tokyoadmin/") != -1 ) returnCityName = "Tokyo"; else if ( curURL.indexOf("/parisplus/") != -1 || curURL.indexOf("/parisadmin/") != -1 ) returnCityName = "Paris"; return returnCityName; }
about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

¿Qué tal un código basado en una configuración más simple? Incluso podría mover la información del mapa de la ciudad a un recurso separado.

Esto permitiría actualizaciones más sencillas sin tener que escribir código adicional.

 function getCityNameFromURL() { var curURL = "" + Request.ServerVariables("URL"); curURL = curURL.toLowerCase(); var cityMappings = [ { code: '/sgncp/', city: 'London' }, { code: '/mlgct/', city: 'London' }, { code: '/berlinplus/', city: 'Berlin' }, { code: '/berlinadmin/', city: 'Berlin' }, { code: '/tokyoplus/', city: 'Tokyo' }, { code: '/tokyoadmin/', city: 'Tokyo' }, { code: '/parisplus/', city: 'Paris' }, { code: '/parisadmin/', city: 'Paris' } ]; return cityMappings .find(mapping => curURL.indexOf(mapping.code) >= 0) ?.city ?? ''; }

Tenga en cuenta también, el condicional nulo ?. al intentar acceder a la propiedad de la city en caso de que la URL no coincida con ninguna de ellas y devuelva una cadena vacía.

Versión con bucle for

Reemplace el código cityMappings.find con este

 for (let i = 0; i < cityMappings.length; i++){ const mapping = cityMappings[i]; if (curURL.indexOf(mapping.code) >= 0) return mapping.city; } // in case no match was found return an emtpy string. return '';
about 4 years ago · Juan Pablo Isaza Relatório

0

Esta respuesta es muy similar a la ya dada por phuzi .

Esta respuesta también presenta un mapeo de la ciudad, pero de una manera algo diferente para reducir la duplicación de cadenas. También introduje una variable defaultCity para (posiblemente) mejorar la legibilidad del código.

 function getCityNameFromURL() { const curURL = ("" + Request.ServerVariables("URL")).toLowerCase(); const defaultCity = { name: "" }; const cities = [ { name: "London", patterns: ["/sgncp/", "/mlgct/" ] }, { name: "Berlin", patterns: ["/berlinplus/", "/berlinadmin/"] }, { name: "Tokyo", patterns: ["/tokyoplus/", "/tokyoadmin/" ] }, { name: "Paris", patterns: ["/parisplus/", "/parisadmin/" ] }, ]; const city = cities.find(({ patterns }) => ( patterns.some(pattern => curURL.includes(pattern)) )) || defaultCity; return city.name; }

O si prefieres un bucle for:

 for (const { name, patterns } of cities) { for (const pattern of patterns) { if (curURL.includes(pattern)) return name; } } return "";
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