Tengo un objeto con matrices (los números son códigos que obtengo de la API):
const weatherConditions = { rainy: [365, 362, 359, 356, 353, 320, 317, 314, 311, 308, 305, 302, 299, 296, 293, 284, 281, 266, 263, 185, 182, 176, 143], snowy: [371, 368, 338, 335, 332, 329, 326, 323, 230, 227, 179], sunny: [113], partlyCloudy: [116], cloudy: [122, 119], foggy: [260, 248], storm: [395, 392, 389, 386], thunder: [200], hailing: [377, 374, 350], };Una función que se ejecuta a través de las claves de objeto y encuentra el número que envió la API. Devuelve un valor de cadena de la clave del objeto (soleado, nublado, etc.):
const findByCode = (code) => { console.log( Object.keys(weatherConditions).find((key) => { return weatherConditions[key].includes(code); }), ); };Un caso de cambio, que elige una imagen respectivamente el valor de retorno de la función. Pero siempre se ejecuta de forma predeterminada de inmediato. No veo el problema. (weatherCode es un valor API, 100% correcto);
switch (findByCode(weatherCode)) { case 'rainy': img.src = './img/rain.png'; break; case 'snowy': img.src = './img/snow.png'; break; case 'sunny': img.src = './img/sun.png'; break; case 'partlyCloudy': img.src = './img/partly-cloudy.png'; break; case 'cloudy': img.src = './img/clouds.png'; break; case 'foggy': img.src = './img/fog.png'; break; case 'storm': img.src = './img/storm.png'; break; case 'thunder': img.src = './img/thunder.png'; break; case 'hailing': img.src = './img/hail.png'; break; default: img.src = './img/weather-news.png' break; }Creo que console.log() es el problema en findByCode , reemplácelo con una declaración de return y funcionará.