Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

166
Vistas
Cómo reducir la complejidad de 27 reemplazando el bloque if/else por otra cosa en React

Tengo una pantalla meteorológica con emojis ajustados por la declaración if/else, pero evidentemente hay un gran retraso ya que la complejidad es 27, ¿cómo reemplazo ese método con un reemplazo que reduzca la complejidad?

Algo nuevo en el mundo del front-end, cualquier ayuda es muy apreciada.

 function drawWeather( d ) { var celcius = Math.round(parseFloat(d.main.temp)-273.15); var fahrenheit = Math.round(((parseFloat(d.main.temp)-273.15)*1.8)+32); var main_description = d.weather[0].main; var description = d.weather[0].description; var day_time = isDay() document.getElementById('location').innerHTML = d.name; if ( main_description === 'Clear' && day_time == true) { document.getElementById('temp').innerHTML = fahrenheit + '°' + ' ☀️'; } else if ( main_description === 'Clear' && day_time == false) { document.getElementById('temp').innerHTML = fahrenheit + '°' + ' 🌔'; } else if( main_description === 'Clouds' ) { document.getElementById('temp').innerHTML = fahrenheit + '°' + ' ☁️'; } else if( main_description === 'Drizzle' ) { document.getElementById('temp').innerHTML = fahrenheit + '°' + ' 🌦️'; } else if( main_description === 'Rain' ) { document.getElementById('temp').innerHTML = fahrenheit + '°' + ' 🌧️'; } else if( main_description === 'Thunderstorm' ) { document.getElementById('temp').innerHTML = fahrenheit + '°' + ' ⛈️'; } else if( main_description === 'Snow' ) { document.getElementById('temp').innerHTML = fahrenheit + '°' + ' ❄️'; } else if( main_description === 'Fog' ) { document.getElementById('temp').innerHTML = fahrenheit + '°' + ' 🌫️'; } else if( main_description === 'Mist' ) { document.getElementById('temp').innerHTML = fahrenheit + '°' + ' 🌫️'; } else if( main_description === 'Haze' ) { document.getElementById('temp').innerHTML = fahrenheit + '°' + ' 🌫️'; } else if( main_description === 'Tornado' ) { document.getElementById('temp').innerHTML = fahrenheit + '°' + ' 🌫️'; } else if( main_description === 'Dust' ) { document.getElementById('temp').innerHTML = fahrenheit + '°' + ' 🌫️'; } else { document.getElementById('temp').innerHTML = fahrenheit + '°'; } }
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

  1. Al menos muestra tu esfuerzo de que trabajas con el código pero no puedes encontrar la manera de hacerlo.

  2. Publique un código formateado para mostrar su respeto con la comunidad

  3. Este es un tema de "SECO - No te repitas" en programación. Puedes buscar con esa palabra clave y aprenderla.

  4. El siguiente código es lo que puedo hacer pero no probado.

 let data = [ { weather: 'Clear', icon_day: '☀️', icon_night: '🌔' }, { weather: 'Clouds', icon: '☁️' }, { weather: 'Drizzle', icon: '🌦️' }, { weather: 'Rain', icon: '🌧️' }, { weather: 'Thunderstorm', icon: '⛈️' }, { weather: 'Snow', icon: '❄️' }, { weather: 'Fog', icon: '🌫️' }, { weather: 'Mist', icon: '🌫️' }, { weather: 'Haze', icon: '🌫️' }, { weather: 'Tornado', icon: '🌫️' }, { weather: 'Dust', icon: '🌫️' } ] let icon = ''; data.forEach(element => { if (main_description === 'Clear') { icon = isDay() ? element.icon_day : element.icon_night } else if (main_description === element.weather) { icon = element.icon; } }); document.getElementById('temp').innerHTML = `${fahrenheit}° ${icon}`;
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda