从 Fetch API (JavaScript) 中检索特定的 objects - Re post
Retrieving specific objects from a Fetch API (JavaScript) - Re post
已编辑问题:尝试编写仅显示返回图书的标题和描述所需的代码。
我尝试了以下操作,但收到“无法读取未定义的 属性 'title'”的响应。当删除第 5 行时,'description'(第 6 行)也会发生同样的情况。
require('isomorphic-fetch');
let items = [];
fetch("https://www.googleapis.com/books/v1/volumes?q=isbn:0747532699")
.then(res => res.json())
.then((result) => {
items = result.items;
console.log(items.volumeInfo.title)
console.log(items.volumeInfo.description)
}),
(error) => {
console.log(error);
}
我做错了什么,我该如何解决?
items 是一个数组。您需要像这样访问它:
result.items[0].volumeInfo.title
更具体地说,您可以循环结果
for (let i = 0 in items) {
result.items[i].volumeInfo.title; //do something here
}
这里的问题是 result.items
实际上是一个数组而不是一个对象。因此我们不能简单地在数组上调用 volumeInfo
属性 。如果你想要第一个数组值,那么你可以简单地做:
const items = result.items;
if(items && items.length){
console.log(items[0].volumeInfo.title)
console.log(items[0].volumeInfo.description)
}
或者,如果您想要所有项目的信息,那么您可以循环遍历它:
const items = result.items;
items.forEach(function(obj,index){
console.log(obj.volumeInfo.title)
console.log(obj.volumeInfo.description)
});
已编辑问题:尝试编写仅显示返回图书的标题和描述所需的代码。
我尝试了以下操作,但收到“无法读取未定义的 属性 'title'”的响应。当删除第 5 行时,'description'(第 6 行)也会发生同样的情况。
require('isomorphic-fetch');
let items = [];
fetch("https://www.googleapis.com/books/v1/volumes?q=isbn:0747532699")
.then(res => res.json())
.then((result) => {
items = result.items;
console.log(items.volumeInfo.title)
console.log(items.volumeInfo.description)
}),
(error) => {
console.log(error);
}
我做错了什么,我该如何解决?
items 是一个数组。您需要像这样访问它:
result.items[0].volumeInfo.title
更具体地说,您可以循环结果
for (let i = 0 in items) {
result.items[i].volumeInfo.title; //do something here
}
这里的问题是 result.items
实际上是一个数组而不是一个对象。因此我们不能简单地在数组上调用 volumeInfo
属性 。如果你想要第一个数组值,那么你可以简单地做:
const items = result.items;
if(items && items.length){
console.log(items[0].volumeInfo.title)
console.log(items[0].volumeInfo.description)
}
或者,如果您想要所有项目的信息,那么您可以循环遍历它:
const items = result.items;
items.forEach(function(obj,index){
console.log(obj.volumeInfo.title)
console.log(obj.volumeInfo.description)
});