IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Retourner le chemin d'un objet, lorsqu'on le connait


Sujet :

JavaScript

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2020
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2020
    Messages : 275
    Points : 113
    Points
    113
    Par défaut Retourner le chemin d'un objet, lorsqu'on le connait
    Bonsoir, j'essaye de faire quelque chose dont je doute que cela soit possible !

    Voici donc un objet dont je connais plusieurs chemins pour récupérer des informations ( il provient d'une requête ).
    objet['title']['day']['text'] par exemple .
    si j'ai quelque part un tableau qui contient ce chemin:
    tableau = ['title', 'day', 'text']Est-il possible de construire une fonction du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    function getText(objet, tableau) {
          ...
          return text
    }
    où text est la valeur de objet['title']['day']['text']
    Car si j'ai plusieurs valeurs à chercher dans l'objet et que je connais à l'avance les chemins, j'aurai alors un tableau de tableaux qui contient le différents chemins.
    Et la modification d'un chemin se fera dans ce tableau , ailleurs si je veux des valeurs , j'utiliserai la fonction...

    J'imagine une fonction récursive , mais je n'y arrive pas !

    Prenez votre temps, ce n'est pas urgent, mais très intéressant en ce qui me concerne, pour la technique s'il y en a une .

    Cordialement,

    Laurent.

  2. #2
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 885
    Points : 6 619
    Points
    6 619
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    let myobj = {
        title: {
            day: {
                text: "C'est Toto qui va voir la maîtresse et qui lui dit:"
            }
        }
    };
     
    function getText(objet, tableau) {
        let ret = objet;
        for (const item of tableau) {
            ret = ret[item];
        }
        return ret;
    }
     
    console.log(getText(myobj, ['title', 'day', 'text']));
    ou de manière récursive:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function getText(objet, tableau) {
        const item = tableau.shift();
        return (item === undefined) ? objet : getText(objet[item], tableau);
    }
    Brachygobius xanthozonus
    Ctenobrycon Gymnocorymbus

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2020
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2020
    Messages : 275
    Points : 113
    Points
    113
    Par défaut
    Ah ! oui ....
    tout bête finalement , j'ai du mal à sortir des + , -, *, ....

    Du coup, je me pose la question:
    le ret est défini au départ comme un objet , et à la fin c'est une chaine de caractères ?
    c'est possible ça , une variable qui change de type ?
    Oui, sinon, ça ne marcherait pas ! Mais comment c'est possible ? ( c'est probablement ça qui me gênait au départ, pour faire ma fonction )

  4. #4
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 885
    Points : 6 619
    Points
    6 619
    Par défaut
    Les variables ne sont pas typées lors de leur déclaration en Javascript contrairement à un langage comme le C, elles peuvent donc changer de type en cours de route ça ne pose aucun problème.
    D'autre part, une chaîne est un objet String.
    Brachygobius xanthozonus
    Ctenobrycon Gymnocorymbus

  5. #5
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2020
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2020
    Messages : 275
    Points : 113
    Points
    113
    Par défaut
    Ok , alors ça, c'est noté !!!!
    oui, effectivement le string est aussi un objet....

    Merci et bonne fin d'après midi !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 24/08/2007, 09h48
  2. [POO] Comment retourner le nom d'un objet
    Par mkael29 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/09/2006, 06h47
  3. [Sources]Récupérer le chemin d'un objet OLE
    Par Mr.Gus dans le forum Contribuez
    Réponses: 9
    Dernier message: 12/05/2005, 10h11
  4. [CR9]état ou sous état avec chemin de l'objet dans la base
    Par cdu dans le forum SAP Crystal Reports
    Réponses: 5
    Dernier message: 18/03/2005, 14h08
  5. Réponses: 7
    Dernier message: 03/12/2004, 12h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo