Javascript 从API获取数据后访问数组元素时显示未定义

Javascript 从API获取数据后访问数组元素时显示未定义,javascript,arrays,api,object,Javascript,Arrays,Api,Object,我试图访问CodeForcesAPI。返回值:返回请求句柄的用户对象列表 例如:https://codeforces.com/api/user.info?handles=tushar1_000;yogeshk972 我使用这个函数获取数据 let output; function getData(){ const url = "https://codeforces.com/api/user.info?handles=tushar1_000;yogeshk972";

我试图访问CodeForcesAPI。返回值:返回请求句柄的用户对象列表

例如:https://codeforces.com/api/user.info?handles=tushar1_000;yogeshk972

我使用这个函数获取数据

let output;
function getData(){
 const url = "https://codeforces.com/api/user.info?handles=tushar1_000;yogeshk972";
    fetch(url).then( (response)=>{
        return response.json();
    }).then( (data) =>{

          console.log(data)

    })
}
getData();
当我控制台时,它向我显示一个数组;

但是当我尝试访问数组的第一个元素时,它显示我没有定义


function getData(){
 const url = "https://codeforces.com/api/user.info?handles=tushar1_000;yogeshk972";
    fetch(url).then( (response)=>{
        return response.json();
    }).then( (data) =>{

          
        console.log(data[0])
        
    })
}
getData();
有人能告诉我为什么它显示未定义。

现在试试

function getData(){
 const url = "https://codeforces.com/api/user.info?handles=tushar1_000;yogeshk972";
    fetch(url).then( (response)=>{
        return response.json();
    }).then( (data) =>{

          
        console.log(data.result[0])
        
    })
}
getData();
现在试试

function getData(){
 const url = "https://codeforces.com/api/user.info?handles=tushar1_000;yogeshk972";
    fetch(url).then( (response)=>{
        return response.json();
    }).then( (data) =>{

          
        console.log(data.result[0])
        
    })
}
getData();

向API发出请求后,您收到一个数组 以结果为名

您必须通过这种方式访问它

数据。结果[0]


希望这有帮助。

向API发出请求后,您收到了一个数组 以结果为名

您必须通过这种方式访问它

数据。结果[0]

希望这有帮助。

您试图访问对象的索引值,而不是数组,这是不可能的。数据是一个对象。 data.results是一个数组,因此可以对其进行索引。

您尝试访问对象的索引值,而不是不可能访问的数组。数据是一个对象。 data.results是一个数组,因此可以对其进行索引。

数据变量是一个对象,而不是数组,0不是它的属性

要访问具有属性的对象,您不像普通数组那样使用ìndex,而是使用属性的名称

要检查数据对象的类型,请执行以下操作:

Array.isArraydata//应为false

您应该知道对象是关联数组

要访问结果属性,可以执行以下建议之一:

data['result'][index] // result is the name of the property
data.result[index]
数据变量是一个对象,而不是数组,0不是它的属性

要访问具有属性的对象,您不像普通数组那样使用ìndex,而是使用属性的名称

要检查数据对象的类型,请执行以下操作:

Array.isArraydata//应为false

您应该知道对象是关联数组

要访问结果属性,可以执行以下建议之一:

data['result'][index] // result is the name of the property
data.result[index]

您能发布console.logdatas的结果吗?在这两种情况下,我都看到未定义,您确定它显示了一个数组吗?它将返回一个对象,该对象具有{status:ok,results:[…]}。因此,您需要控制台数据。结果[0]我刚刚尝试了您的代码,它工作正常。有什么你没给我们看的吗?您是否有机会将数据分配给变量输出和日志输出,这就是您未定义的原因?这就是我代码中的所有内容,它给了我状态:当我使用console.logdata时,它给了我一个大小为2的数组,所以我想用数据[0]访问它但是显示的是未定义的。您能发布console.logdatas的结果吗?在这两种情况下,我都看到未定义的,您确定它显示了一个数组吗?它将返回一个具有{status:ok,results:[…]}的对象。因此,您需要控制台数据。结果[0]我刚刚尝试了您的代码,它工作正常。有什么你没给我们看的吗?您是否有机会将数据分配给变量输出和日志输出,这就是您未定义的原因?这就是我代码中的所有内容,它给了我状态:当我使用console.logdata时,它给了我一个大小为2的数组,所以我想用数据[0]访问它,但显示为未定义。