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 :

Variable aux noms dynamiques


Sujet :

JavaScript

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2011
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2011
    Messages : 52
    Points : 52
    Points
    52
    Par défaut Variable aux noms dynamiques
    Bonjour, j'aimerais faire un système d'arborescence qui crée des variables pour dire si le dossier est ouvert ou fermé.

    pour celà, j'ai essayer avec un tableau seulement celà ne fonctionne que avec des chiffres, or il me le faudrais avec des index textuels, j'ai voulu essayer en créant un objet, mais je ne sais pas comment faire pour que le nom du paramètre de l'objet soit la valeur d'une variable.

    Merci d'avance

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    un array littéral ..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    etat=[]
    etat['nomFichier']=false
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2011
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2011
    Messages : 52
    Points : 52
    Points
    52
    Par défaut
    bon .... donc mon bug ne venais pas de là la dernière fois ... car c'est possible ..... grrrr ... bon , merci, jvais test ça

  4. #4
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Ah non Spaffy...

    Les tableaux associatifs n'existent pas en JavaScript, donc là, tu initialises un Array pour immédiatement après le transformer en Object
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var etat={};
    etat.nomFichier=false;
    est plus correct.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  5. #5
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    Bonjour
    comme toujours pourquoi créer une map pour stocker des propriétés qui sont associé par un nom a des éléments ?

    ça éparpille les informations et ça risque de ne plus être en phase.

    supposons que tu aies un arbre
    Code text : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    root
     +fils1
     +fils2
        +petitfils1
        +petitfils2
    tu veux garder l'état de ton noeud true ouvert, false fermé.
    du créés donc une Map ou tout autre forme de variable pour faire quelque chose comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    var etat={};
    etat.root=false;
    etat.fils1=true;
    etat.fils2=false;
    etat.petitfils1=false;
    etat.petitfils2=false;
    A priori tout semble merveilleux. mais au fil du temps si tu n'est pas extrêmement vigilant une variable peut être modifiée alors que le noeud n'a pas changé d'état. ou le contraire. autre problème qui peut survenir l'arbre change des noeuds sont ajouté ou supprimé mais la variables n'a pas changé. et pour finir deux noeuds peuvent avoir le même nom et là il faut trouver une autre façon de former les clefs.
    il ne faut pas oublier de supprimer la map lorsqu'on supprime l'arbre.
    Bref tout ça n'est pas insurmontable mais demande d'y prendre garde.

    il y a en fait une solution beaucoup plus simple.
    lorsque tu construit ton arbre tu ajoutes sur chaque noeud un méthode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function init(node) {
      node.getState = function () {
        return (this.firstChild.style.display == 'block')
      }
    }
    si tu supprime un noeud il n'y a rien à faire. si le noeud passe à ouvert il n'y a rien à faire. s'il passe à fermé il n'y a rien à faire. si tu ajoute un noeud il faut l'initialiser.
    pour savoir si un node est ouvert ou fermé il suffit de faire monNoeud.getState();bref utiliser les attributs et les méthodes des objets eux même simplifie très grandement le travail.

    j'ai pour habitude de dire si tu veux savoir si les phare de ta voiture sont allumé tu regarde les phares
    pour qui veux tu noter sur un calepin tous les changement d'état de ton objet. observe ton objet.

    A+JYT

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

Discussions similaires

  1. [XL-2007] Puis-je optimiser mes if else avec des plages et variables aux noms différents ?
    Par GroFlo dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 05/08/2014, 17h16
  2. Variable au nom "dynamique"
    Par cheverny dans le forum C#
    Réponses: 5
    Dernier message: 13/03/2009, 14h15
  3. créer une variable au nom dynamique?
    Par gwena54 dans le forum ASP
    Réponses: 1
    Dernier message: 22/07/2008, 11h51
  4. variable a nom dynamique
    Par yvesall dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 15/08/2007, 01h10
  5. [PL/SQL][Oracle 8i] Variable de nom dynamique
    Par GoLDoZ dans le forum Oracle
    Réponses: 17
    Dernier message: 27/06/2006, 15h36

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