data.forEach не является функцией при использовании API - PullRequest
0 голосов
/ 03 марта 2020

Это ответ моего API:

{count: 149, filters: {…}, competitions: Array(149)}
count: 149
filters: {}
competitions: Array(149)
[0 … 99]
[100 … 148]
100: {id: 2102, area: {…}, name: "Liga Panameña de Fútbol", code: null, emblemUrl: null, …}
101: {id: 2101, area: {…}, name: "Primera División", code: "PPD", emblemUrl: null, …}
102: {id: 2099, area: {…}, name: "Superpuchar Polski", code: null, emblemUrl: null, …}
103: {id: 2100, area: {…}, name: "Puchar Polski", code: null, emblemUrl: null, …}
104: {id: 2017, area: {…}, name: "Primeira Liga", code: "PPL", emblemUrl: null, …}
105: {id: 2096, area: {…}, name: "Liga2 Cabovisão", code: null, emblemUrl: null, …}

Я хочу, чтобы названия соревнований были на моей странице, но что бы я ни пытался, я терпел неудачу. Это последний код:

const url = "http://api.football-data.org/v2/competitions";

async function getData() {
  const response = await fetch(url, {
    method: "GET",
    headers: {
      "X-Auth-Token": "ef72570ff371408f9668e414353b7b2e"
    }
  });
  const data = await response.json();
  console.log(data);

  let output = "";

  data.forEach(row => (output += `<p>${row.competitions[i].name}</p>`));

  document.getElementById('output').innerHTML = output;
}

getData();

Как я могу это исправить?

Ответы [ 2 ]

2 голосов
/ 03 марта 2020

data не является массивом, но data.competitions есть, попробуйте:

data.competitions.forEach(competition => {output += `<p>${competition.name}</p>`})
1 голос
/ 03 марта 2020

forEach используется для перебора значений массива, его нельзя использовать для объекта.

Может быть, вы хотите сделать data.competitions.forEach...

...