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;
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?
4 Réponses :
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();
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.
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.
La variable Pour accéder à un objet avec sa propriété, vous n'utilisez pas Pour vérifier le type de l'objet Vous devez savoir que les objets sont des tableaux associatifs . Pour accéder à la propriété data est un objet , pas un tableau , et 0 n'est pas un ìndex comme un tableau normal, mais le nom de la propriété. data : Array.isArray (data) // attendu faux result , vous pouvez faire l'une de ces suggestions: data['result'][index] // result is the name of the property
data.result[index]
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 consoliderdata.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 variableoutputet enregistrez-vousoutputet c'est pourquoi vous obtenezundefined?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.