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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2020
    Messages
    280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2020
    Messages : 280
    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 confirmé Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 988
    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 988
    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);
    }

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

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2020
    Messages : 280
    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 confirmé Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 988
    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 988
    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.

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

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2020
    Messages : 280
    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