无法读取数组中对象的属性标题

时间:2019-09-23 12:12:41

标签: javascript arrays json object

基本上,我试图从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()`

这是错误:

  

未捕获(承诺)ReferenceError:标题未定义       在getDataFromCinemasAPI

4 个答案:

答案 0 :(得分:0)

如果您想获取一个在运行时知道其名称的属性,则应该 object.property (也可以使用 object["property"] ,尽管不建议这样做)。如果要获取仅在运行时才知道其名称的属性,则应使用 object[propertyName] (其中propertyName是变量)。

在您提供的代码中,您正在使用data[title],因此应将其替换为data.title(或data["title"])。

但是您提供的json包含一个对象数组而不是一个对象,因此您应该首先在该索引 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();
  for (let i = 0; i < data.length; i++) {
    console.log(data[i].title);
  }
}

getDataFromCinemasAPI();

答案 1 :(得分:0)

数据是一个数组,因此您必须在打印属性之前访问元素的位置

console.log(data[i].title)

答案 2 :(得分:0)

完成!感谢console.log(data[i]["title"]);,谢谢尼克·帕森斯!

答案 3 :(得分:0)

正如其他人所说,请使用方括号符号或点符号。但是,您遇到的另一个问题是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();