не может прочитать заголовок свойства объекта в массиве - PullRequest
0 голосов
/ 23 сентября 2019

В основном я пытался console log указать название задачи из json- placeholder, но в конце я получил сообщение об ошибке:

Вот мой файл .js:

//starts at 14:43, sat 21/9/2019

//jsonph

const url = 'https://jsonplaceholder.typicode.com/todos?_limit=3';

async function getDataFromCinemasAPI() {
    const response = await fetch(url);
    const data = await response.json();
    //FIXME: da undefined
    for (let i = 0; i < data.length; i++) {
        console.log(data[title]);              
    }
}

getDataFromCinemasAPI();

$('.card-text.c1').html()`

Вот ошибка:

Uncaught (в обещании) ReferenceError: заголовок не определен в getDataFromCinemasAPI

Ответы [ 4 ]

0 голосов
/ 23 сентября 2019

Как уже говорили другие, используйте обозначения в квадратных скобках или точечные обозначения.Однако другая проблема, с которой вы столкнулись, состоит в том, что data - это массив, который вы зацикливаете, поэтому вам нужно data[i]["title"] или data[i].title

const url = 'https://jsonplaceholder.typicode.com/todos?_limit=3';

async function getDataFromCinemasAPI() {
    const response = await fetch(url);
    const data = await response.json();
    //FIXME: da undefined
    for (let i = 0; i < data.length; i++) {
        console.log(data[i]["title"]);
    }
}

getDataFromCinemasAPI();
0 голосов
/ 23 сентября 2019

данные - это массив, поэтому вам необходимо получить доступ к позиции элемента, прежде чем печатать свойство

console.log(data[i].title)
0 голосов
/ 23 сентября 2019

сделано!с console.log(data[i]["title"]); спасибо Ник Парсонс!

0 голосов
/ 23 сентября 2019

Если вы пытаетесь получить свойство, имя которого вы знаете до запуска, вам следует object.property (вы также можете использовать object["property"], хотя это не рекомендуется),Если вы пытаетесь получить свойство, имя которого вы знаете только во время выполнения, вам следует использовать object[propertyName] (где propertyName - переменная).

В указанном вами кодевы используете data[title], поэтому вы должны заменить его на data.title (или data["title"]).

Но указанный вами json содержит массив объектов вместо одного объекта, поэтому вы должны сначала получитьэлемент с этим индексом data[i], а затем получить свойство заголовка data[i].title.

const url = 'https://jsonplaceholder.typicode.com/todos?_limit=3';

async function getDataFromCinemasAPI() {
  const response = await fetch(url);
  const data = await response.json();
  for (let i = 0; i < data.length; i++) {
    console.log(data[i].title);
  }
}

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