Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/455.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用fetch成功调用API,但可以';t从对象中提取单个值_Javascript_Fetch - Fatal编程技术网

Javascript 使用fetch成功调用API,但可以';t从对象中提取单个值

Javascript 使用fetch成功调用API,但可以';t从对象中提取单个值,javascript,fetch,Javascript,Fetch,我能够成功地调用API,并在控制台中显示完整列表。然而,当我尝试提取单个元素时,我得到了“未定义”。我看不出我做错了什么。下面是我的代码: let myHeaders = new Headers(); myHeaders.append("X-eBirdApiToken", "someToken"); let requestOptions = { method: 'GET', headers: myHeaders, redirect

我能够成功地调用API,并在控制台中显示完整列表。然而,当我尝试提取单个元素时,我得到了“未定义”。我看不出我做错了什么。下面是我的代码:

let myHeaders = new Headers();
myHeaders.append("X-eBirdApiToken", "someToken");

let requestOptions = {
    method: 'GET',
    headers: myHeaders,
    redirect: 'follow'
};

class Birds {
    constructor(region) {
        this.region = 'US-MA'
    }

    async getBirds() {
        const response = await fetch(`https://api.ebird.org/v2/data/obs/${this.region}/recent`, requestOptions);
        const data = await response.json();
        console.log(data);
        console.log(data.comName);
        console.log(data["locId"]);

        const {speciesCode, comName} = data;
        console.log(speciesCode, comName)

        return data;
    }
}
下面是API的示例输出,我得到了283行:

281:
通讯名称:“Catharus sp.”
人数:1
拉丁美洲:42.219
液化天然气:-71.064
locId:“L207351”
地点名称:“蓝山保留地”
地点私人:假
obsDt:“2020-07-10 11:50”
评论:错
是的
名称:“Catharus sp.”
物种代码:“cathus”
子ID:“S71320255”
__原型:
构造函数:ƒObject()
hasOwnProperty:ƒhasOwnProperty()
isPrototypeOf:ƒisPrototypeOf()
propertyIsEnumerable:ƒpropertyIsEnumerable()
toLocaleString:ƒtoLocaleString()
toString:ƒtoString()
valueOf:ƒvalueOf()
__定义者:定义者()
__定义设置:定义设置()
__lookupGetter_uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
__lookupSetter_uuuu:ƒuuu lookupSetter_uuuuu()
获取uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu()
集合
当我尝试获取单个项目时:

未定义
birds.js:20未定义
birds.js:23未定义未定义

这一行显示您正在尝试解构单个对象

 const {speciesCode, comName} = data;
然而,数据是一个数组!因此,如果您想要控制台日志,您需要

 const {speciesCode, comName} = data[0];

这一行表示你试图解构一个对象

 const {speciesCode, comName} = data;
然而,数据是一个数组!因此,如果您想要控制台日志,您需要

 const {speciesCode, comName} = data[0];

请提供
console.log(data)
的输出。添加
data
对象,即控制台日志记录后得到的对象。“从列表中提取单个项目”-您发布的代码中没有任何内容可以访问列表?!看一看Thank@Bergi,它非常有帮助和彻底。请提供
控制台的输出。日志(数据)
。添加
数据
对象,即控制台日志记录后得到的对象。“从列表中提取单个项目”-您发布的代码中没有任何内容可以访问列表?!看一看Thank@Bergi,它非常有帮助和彻底。谢谢你,这解决了问题。然而,我知道我意识到我试图跳过一步。我需要先运行for循环,然后处理各个对象。谢谢,这解决了问题。然而,我知道我意识到我试图跳过一步。我需要先运行for循环,然后处理各个对象。