1
votes

affichage indéfini lors de l'accès aux éléments du tableau après la récupération des données d'une API

J'essayais d'accéder à l'API codeforces. Quelle valeur de retour: renvoie une liste d'objets User pour les handles demandés.

Exemple: "https://codeforces.com/api/user.info?handles=tushar1_000;yogeshk972

J'ai créé cette fonction 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();

quand je console, il me montre un tableau; entrez la description de l'image ici

mais quand j'essaye d'accéder au 1er élément du tableau, il me montre indéfini.

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();

Quelqu'un peut-il me dire pourquoi est-il affiché non défini?


7 commentaires

Pouvez-vous publier le résultat de console.log (données)


dans les deux cas, je vois undefined, êtes-vous sûr qu'il montre un tableau?


il vous rend un objet avec {status: "ok", results: [...]} . Vous devez donc consolider data.results [0]


Je viens d'essayer votre code et il fonctionne très bien. Y a-t-il quelque chose que vous ne nous avez pas montré? Attribuez-vous par hasard des données à la variable output et enregistrez-vous output et c'est pourquoi vous obtenez undefined ?


c'est tout dans mon code et ça me donne le statut: "ok" quand j'ai utilisé le console.log (data) car il me donne un tableau de taille 2 donc j'ai pensé y accéder avec data [0] mais il est indéfini .


@ibrahimmahrir je n'assigne pas la sortie. La variable de sortie que je n'ai utilisée nulle part dans mon code, je viens de la déclarer.


@RinkeshGolwala désolé, j'ai posté la mauvaise image maintenant que je l'ai modifiée.


4 Réponses :


1
votes

essayez maintenant

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();


0 commentaires

2
votes

Après avoir fait votre demande à l'API, vous avez reçu un tableau avec le nom de résultats

Vous devez y accéder de cette façon

data.results[0ITED

J'espère que cela vous aidera.


0 commentaires

0
votes

Vous essayez d'accéder à la valeur d'index d'un objet au lieu d'un tableau, ce qui n'est pas possible. Les données sont un objet . data.results est un tableau, donc l'indexation peut fonctionner dessus.


0 commentaires

0
votes

La variable data est un objet , pas un tableau , et 0 n'est pas un

Pour accéder à un objet avec sa propriété, vous n'utilisez pas ìndex comme un tableau normal, mais le nom de la propriété.

Pour vérifier le type de l'objet data :

Array.isArray (data) // attendu faux

Vous devez savoir que les objets sont des tableaux associatifs .

Pour accéder à la propriété result , vous pouvez faire l'une de ces suggestions:

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


0 commentaires