Rudman, попробуйте - узнаете.
В моем коде объект с данными - response (строка 32).
Структура объекта видна на странице.
Свойство «description» есть только у свойства «weather», получить его можно так:
response.weather[0].description
Температура в Кельвинах лежит тут:
response.main.temp
Отображение температуры и описания в градусах Цельсия:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<div class="cont">
<div class="request">
<select id="city">
<option value="Kharkiv">Kharkiv</option>
<option value="Kiev">Kiev</option>
<option value="Lviv">Lviv</option>
<option value="Odesa">Odesa</option>
</select>
</div>
<div id="weather"></div>
</div>
<script>
const apiKey = "6cc3148bb3b32c3700a98d81defdd8a7";
const container = document.querySelector('#weather');
document.querySelector('#city').addEventListener('change', function () {
const selectedCity = this.value;
const requestGetParams = `q=${encodeURIComponent(selectedCity)}&units=metric&appid=${apiKey}`;
const requestUrl = `https://api.openweathermap.org/data/2.5/weather?${requestGetParams}`;
fetch(requestUrl).then(
res => res.json()
).then(response => {
const weatherDescriptions = response.weather.map(item => item.description);
container.innerHTML = `<div><b>Main</b>: ${response.main.temp}</div>`
+ `<div><b>Description</b>: ${weatherDescriptions.join(', ')}</div>`;
});
});
document.querySelector('#city').dispatchEvent(new Event('change'));
</script>
</body>
</html>