С каждым погодным условием связаны три уникальные строки: строка, возвращаемая API, имя файла изображения и изображение alt
. Вы можете сделать это кратко, используя объект, проиндексированный строкой ответа API, где каждое значение является либо другим объектом, либо массивом:
const weatherStrings = {
Cloud: ['cloud', 'cloud',
Hail: ['hail', 'hail'],
'Heavy Cloud': ['heavy cloud', 'heavy-clouds'],
// ...
}
// ...
success: function(response) {
for (const item of response.weather) {
const [filename, alt] = weatherStrings[item.currentConditions];
const icon = `<img src="./weather_icons/${filename}.png" alt="${alt}" width="22px">`;
// ...
}
Если возможно, вы можете сделать вещи короче и согласованнее, изменив свой бэкэнд на то же имя файла, что и строка currentConditions
- например, измените имя файла cloud.png
на Cloud.png
, а heavy rain.png
на Heavy Rain.png
. Тогда значение для каждой строки погоды должно быть только строкой alt
:
const altsByCurrentConditions = {
Cloud: 'cloud',
Hail: 'hail',
'Heavy Cloud': 'heavy-clouds',
// ...
}
// ...
success: function(response) {
for (const item of response.weather) {
const alt = altsByCurrentConditions[item.currentConditions];
const icon = `<img src="./weather_icons/${item.currentConditions}.png" alt="${alt}" width="22px">`;
// ...
}