Я получаю некоторые данные из API, которые поступают в виде массива объектов, и хочу извлечь их и деструктировать, чтобы я мог использовать их для визуализации компонента в React. Я кое-чего достиг, но таким образом я не целуюсь, а также для рендеринга создаю предмет 6 раз для каждого из них, так что у меня есть 24div.
Данные поступают следующим образом: "почасовой" массив из 48 объектов. Я уже срезал массив, чтобы использовать только шесть, так как это все, что мне нужно.
"hourly": [
{
"dt": 1618315200,
"temp": 282.58,
"feels_like": 280.4,
"pressure": 1019,
"humidity": 68,
"dew_point": 276.98,
"uvi": 1.4,
"clouds": 19,
"visibility": 306,
"wind_speed": 4.12,
"wind_deg": 296,
"wind_gust": 7.33,
"weather": [
{
"id": 801,
"main": "Clouds",
"description": "few clouds",
"icon": "02d"
}
],
"pop": 0
},
...
Это то, что я получил в своем возврате и в тегах разделов, что действительно работает, но я не думаю, что это лучший способ сделать это, кроме того, это кошмар, чтобы правильно оформить его, так как он каждый раз создает шесть элементов:
<div className="weather-info-extra">
{shortedArr.map((i, index) => (
<div key={index}>
{new Date(i.dt * 1000).toLocaleTimeString([], {
timeZone: timezone,
hour: '2-digit',
minute: '2-digit',
hour12: true,
})}
</div>
))}
{shortedArr.map((i, index) => (
<div key={index}>{i.weather.map(w => w.description)}</div>
))}
{shortedArr.map((i, index) => (
<div key={index}>{i.temp} C</div>
))}
{shortedArr.map((i, index) => (
<div key={index}>
<p>Rain</p>
{i.pop}%
</div>
))}
</div>
Я знаю, что есть очень очевидный способ, которого мне не хватает, чтобы получить каждый объект из массива, чтобы я мог сделать его лучше.