Прогноз OpenWeatherMap API только на несколько дней - PullRequest
0 голосов
/ 27 января 2020

Проблема в том, что когда я получаю URL-адрес для получения файла прогноза json, он дает мне массив из 40 объектов (прогноз каждые 3 часа на 5 дней), теперь я хочу отображать прогноз только на каждый день, а не прогноз каждые 3 часа.

Как я могу сделать это с Javascript?

Массив:

{…}
​
city: Object { id: 2643743, name: "London", country: "GB", … }
​
cnt: 40
​
cod: "200"
​
list: (40) […]
​​
0: Object { dt: 1580148000, main: {…}, dt_txt: "2020-01-27 18:00:00", … }
​​
1: Object { dt: 1580158800, main: {…}, dt_txt: "2020-01-27 21:00:00", … }
​​
2: Object { dt: 1580169600, main: {…}, dt_txt: "2020-01-28 00:00:00", … }
​​
3: Object { dt: 1580180400, main: {…}, dt_txt: "2020-01-28 03:00:00", … }
​​
4: Object { dt: 1580191200, main: {…}, dt_txt: "2020-01-28 06:00:00", … }
​​
5: Object { dt: 1580202000, main: {…}, dt_txt: "2020-01-28 09:00:00", … }
​​
6: Object { dt: 1580212800, main: {…}, dt_txt: "2020-01-28 12:00:00", … }
​​
7: Object { dt: 1580223600, main: {…}, dt_txt: "2020-01-28 15:00:00", … }
​​
8: Object { dt: 1580234400, main: {…}, dt_txt: "2020-01-28 18:00:00", … }
​​
9: Object { dt: 1580245200, main: {…}, dt_txt: "2020-01-28 21:00:00", … }
​​
10: Object { dt: 1580256000, main: {…}, dt_txt: "2020-01-29 00:00:00", … }
​​
11: Object { dt: 1580266800, main: {…}, dt_txt: "2020-01-29 03:00:00", … }
​​
12: Object { dt: 1580277600, main: {…}, dt_txt: "2020-01-29 06:00:00", … }
​​
13: Object { dt: 1580288400, main: {…}, dt_txt: "2020-01-29 09:00:00", … }
​​
14: Object { dt: 1580299200, main: {…}, dt_txt: "2020-01-29 12:00:00", … }
​​
15: Object { dt: 1580310000, main: {…}, dt_txt: "2020-01-29 15:00:00", … }
​​
16: Object { dt: 1580320800, main: {…}, dt_txt: "2020-01-29 18:00:00", … }
​​
17: Object { dt: 1580331600, main: {…}, dt_txt: "2020-01-29 21:00:00", … }
​​
18: Object { dt: 1580342400, main: {…}, dt_txt: "2020-01-30 00:00:00", … }
​​
19: Object { dt: 1580353200, main: {…}, dt_txt: "2020-01-30 03:00:00", … }
​​
20: Object { dt: 1580364000, main: {…}, dt_txt: "2020-01-30 06:00:00", … }
​​
21: Object { dt: 1580374800, main: {…}, dt_txt: "2020-01-30 09:00:00", … }
​​
22: Object { dt: 1580385600, main: {…}, dt_txt: "2020-01-30 12:00:00", … }
​​
23: Object { dt: 1580396400, main: {…}, dt_txt: "2020-01-30 15:00:00", … }
​​
24: Object { dt: 1580407200, main: {…}, dt_txt: "2020-01-30 18:00:00", … }
​​
25: Object { dt: 1580418000, main: {…}, dt_txt: "2020-01-30 21:00:00", … }
​​
26: Object { dt: 1580428800, main: {…}, dt_txt: "2020-01-31 00:00:00", … }
​​
27: Object { dt: 1580439600, main: {…}, dt_txt: "2020-01-31 03:00:00", … }
​​
28: Object { dt: 1580450400, main: {…}, dt_txt: "2020-01-31 06:00:00", … }
​​
29: Object { dt: 1580461200, main: {…}, dt_txt: "2020-01-31 09:00:00", … }
​​
30: Object { dt: 1580472000, main: {…}, dt_txt: "2020-01-31 12:00:00", … }
​​
31: Object { dt: 1580482800, main: {…}, dt_txt: "2020-01-31 15:00:00", … }
​​
32: Object { dt: 1580493600, main: {…}, dt_txt: "2020-01-31 18:00:00", … }
​​
33: Object { dt: 1580504400, main: {…}, dt_txt: "2020-01-31 21:00:00", … }
​​
34: Object { dt: 1580515200, main: {…}, dt_txt: "2020-02-01 00:00:00", … }
​​
35: Object { dt: 1580526000, main: {…}, dt_txt: "2020-02-01 03:00:00", … }
​​
36: Object { dt: 1580536800, main: {…}, dt_txt: "2020-02-01 06:00:00", … }
​​
37: Object { dt: 1580547600, main: {…}, dt_txt: "2020-02-01 09:00:00", … }
​​
38: Object { dt: 1580558400, main: {…}, dt_txt: "2020-02-01 12:00:00", … }
​​
39: Object { dt: 1580569200, main: {…}, dt_txt: "2020-02-01 15:00:00", … }
​​
length: 40
​​
<prototype>: Array []
​
message: 0
​
<prototype>: Object { … }
weather.js:78:11

И мне нужно, чтобы это не было связано со днем пользователь получает данные.

Я в бесплатной версии openweathermap.

Ответы [ 2 ]

1 голос
/ 27 января 2020

Тогда вы используете неправильный тип API. Попробуйте эту

api.openweathermap.org/data/2.5/forecast/daily?q=London&mode=xml&units=metric&cnt=7

ссылку здесь

0 голосов
/ 28 января 2020
for (var i = 0; i < weatherForecast.list.length; i+=8) {
  console.log(weatherForecast.list[i].dt_txt);
}

это дает каждый день

, потому что есть массив с 40 объектами, с 5 днями, 5 * 8 = 40

5 = дней

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...