Problème d'affichage avec for en js

Bonjour,

Je débute depuis pas très longtemps le javascript , et je fait l'exercice de Pokémon avec les Api etc... et je pense que c'est ma boucle for où j'ai le problème mais le soucis il me faut absolument la boucle pour que je recupere les attaques du pokemon ! Voici mon résultat dans le cmder :

ID : 1
Nom : bulbasaur
Taille : 7
Poids : 69
Attaques : pound
Attaques : pound,double-slap
Attaques : pound,double-slap,pay-day
Attaques : pound,double-slap,pay-day,comet-punch
Attaques : pound,double-slap,pay-day,comet-punch,cut
Attaques : pound,double-slap,pay-day,comet-punch,cut,scratch
Attaques : pound,double-slap,pay-day,comet-punch,cut,scratch,razor-wind
Attaques : pound,double-slap,pay-day,comet-punch,cut,scratch,razor-wind,guillotine
Attaques : pound,double-slap,pay-day,comet-punch,cut,scratch,razor-wind,guillotine,mega-punch
Attaques : pound,double-slap,pay-day,comet-punch,cut,scratch,razor-wind,guillotine,mega-punch,whirlwind
Attaques : pound,double-slap,pay-day,comet-punch,cut,scratch,razor-wind,guillotine,mega-punch,whirlwind,bind
Attaques : pound,double-slap,pay-day,comet-punch,cut,scratch,razor-wind,guillotine,mega-punch,whirlwind,bind,swords-dance
Attaques : pound,double-slap,pay-day,comet-punch,cut,scratch,razor-wind,guillotine,mega-punch,whirlwind,bind,swords-dance,vice-grip

Et j'aimerais que ça m'affiche comme ça :

ID : 1
Nom : bulbasaur
Taille : 7
Poids : 69
Attaques : pound,double-slap,pay-day,comet-punch,cut,scratch,razor-wind,guillotine,mega-punch,whirlwind,bind,swords-dance,vice-grip

// Avec tout les attacks en une seule fois

Et voici mon code js :

var request = require('request');
function catchPokemon(result) {

request.get("https://pokeapi.co/api/v2/pokemon/" + result, function (err, res, body) {
var json = JSON.parse(body);
var stocks = [];
console.log('ID : ' + json.id)
console.log('Nom : ' + json.name)
console.log('Taille : ' + json.height)
console.log('Poids : ' + json.weight)

request.get('https://pokeapi.co/api/v2/move/', function (err, res, body) {

var json2 = JSON.parse(body)
var rest = json2.results;
//console.log(res) // nom des attack

for (var i = 0; i < rest.length; i++) {

request.get(rest[i].url, function (err, res, body) {

var json3 = JSON.parse(body)
var res2 = json3.type;

if (res2.url === ("https://pokeapi.co/api/v2/type/" + result + "/")) {

var arr = json3.name;
stocks.push(arr);
console.log("Attaques : " + stocks);

return;

}

})

}

})
})
} catchPokemon(1);


Je vous remercie d'avance pour votre aide :)

4 réponses

  1. Modérateur
    Bonjour

    res ou rest ... Tu as mis un t sur une de tes variables...puis il disparaît quand tu l'utilises ...??
    0
    1. Bonjour :)

      C'est bien rest , je ne utilise pas le res des paramètres de la function
      0
      1. Modérateur
        Pourtant.. moi je vois du res dans ton code...
        0
    2. les rest , je l'appelle via à cette variable " var rest = json2.results;" ( .results de la requete , pas celui de la function ) , les seuls res c'est dans les paramètres des function , sinon il y a aussi res2 qui n'est pas res !
      ( désolé, j'aurais due mieux les nommés )
      0
      1. Modérateur
        Ok j'ai mal vu vu que tu n'as pas utiliser correctement les balises de code pour poster ton code...
        (A lire pour tes prochains messages :. https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code )

        Bref,
        Ajoute des console.log afin d'afficher le contenu de tes variables avant tes boucles et montre-nous à quoi ça ressemble'.
        0
    3. Merci pour l'info.

      console.log de rest c'est ça


      le consol.log de json2 c'est ça :



      et le console.log de json qui donne un résultat assez long :

      0