Partage
  • Partager sur Facebook
  • Partager sur Twitter

Acceder a une valeur

    13 août 2018 à 6:11:13

    Bonjour,

    Je suis un peu coince et j'aimerai avoir votre aide.
    J'ai une variable : this.story

    je souhaiterai acceder a ceci:

    this.story[12]["jojo"][3]["mama"][0]

    Je dispose d'une variable path construit comme ceci :

    path = [12, "jojo", 3, "mama", 0]

    Le soucis que j'ai c'est que je ne sais pas comment acceder a this.story[12]["jojo"][3]["mama"][0] sans faire de eval. En effet, actuellement j'utilise cette technique de gros porc et ca ne me convient pas du tout:

      let path = [12, "jojo", 3, "mama", 0];
      console.log(this.story[a[0]][a[1]][a[2]][a[3]][a[4]]); // OK (1)
    
      var variable = "this.story";
      for ( let i in a ) {
        variable += `["${a[i]}"]`;
      }
    
      console.log(variable); // Affiche : this.story[12]["jojo"][3]["mama"][0]
      console.log(eval(variable)); // OK (2)

    Pouvez vous m'aider?

    -
    Edité par Scion 13 août 2018 à 8:45:21

    • Partager sur Facebook
    • Partager sur Twitter
      13 août 2018 à 9:58:47

      Bonjour,

      Dans ton code, où est déclarée la variable 'a' ?

      Si je comprends bien ton problème, je pense que tu devrais pouvoir t'en sortir avec la méthode reduce()

      • Partager sur Facebook
      • Partager sur Twitter
        13 août 2018 à 10:17:34

        TryAndShare a écrit:

        Si je comprends bien ton problème, je pense que tu devrais pouvoir t'en sortir avec la méthode reduce()


        Absolument, en trois lignes en plus.

        Si jamais, voilà le code, exemple typique d'utilisation de reduce.

        path.reduce(function(acc, val) {
          return acc[val];
        }, this.story);



        • Partager sur Facebook
        • Partager sur Twitter
        Développeur Front-End freelance disponible pour contrats ! En guerre contre l'utilisation abusive de jQuery.
          13 août 2018 à 10:34:33

          Hello,

          merci pour vos reponses !
          Je regarderai a mon retour de vacances (c'est les vacances dans 30min ... et comme on n'a que 5 jours de vacances d'ete au Japon, je vais en profiter un max).

          Je vous repondrai a mon retour en tout cas merci infiniment !!!

          @TryAndShare : je me suis trompe, la variable a c'est path en fait.

          • Partager sur Facebook
          • Partager sur Twitter

          Acceder a une valeur

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown