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 :

Tableau associatif avec clé numerique


Sujet :

JavaScript

  1. #1
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 53
    Points : 58
    Points
    58
    Par défaut Tableau associatif avec clé numerique
    Bonjour à tous.

    J'aimerai savoir si il y'avait possibilité de réaliser des tableau associatif avec des clé numérique.

    Je m'explique :

    Je possède des objet utilisateurs avec des id (ex : 1234, 546, 4789).

    Je voudrais inserer ces users dans un tableau associatif avec une syntaxe du type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    var user1 = {};
    user1.nom = "DUPONT";
    user1.prenom = "Jean";
     
    userArray["1234"] = user1;
     
    //ou
     
    userArray.1234 = user1;
    Cependant cela ne fonctionne pas.

    Y'a t'il une solution ?

    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 640
    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 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    tu as juste oublié de déclarer ton userArray comme array ou objet json

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    var user1 = {};
    user1.nom = "DUPONT";
    user1.prenom = "Jean";
     
    var userArray=new Array(); 
    // ou userArray={}
    userArray["1234"] = user1;
     
     
    alert(userArray['1234'].nom)

  3. #3
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 53
    Points : 58
    Points
    58
    Par défaut
    Ha oui j'ai oublié de le décalerer mais mon soucis ne viens pas de la.

    Si je récupère un indice de user (ex : 1234)

    J'aimerai pouvoir acceder à l'objet user de cette facon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    var idUser = 1234;
     
    console.log(userArray.idUser);
    J'aimerai que lui interprete ceci comme : console.log(userArray.1234);



    ou pouvoir l'affecter comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    var idUser = 1234
    var user1 = {};
    user1.nom = "DUPONT";
    user1.prenom = "Jean";
     
    userArray.idUser = user1;
    et qu'il l'interprete comme ceci : userArray.1234 = user1;

    Actuellement j'utilise un tableau à index.

    Des que j'ai un user, je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    var idUser = 1234;
     
    userArray[idUser] = user1;
    Le soucis est qu'il me creait de userArray[0] à userArray[1233] vide.
    Apres pour les parcours c'est super lourd.

  4. #4
    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 640
    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 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var idUser = 1234;
     
    console.log(userArray.idUser);
    non pas possible comme ça


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    idUser= 1234
    alert(userArray[idUser].nom)

  5. #5
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 53
    Points : 58
    Points
    58
    Par défaut
    Si je fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    idUser= 1234
    alert(userArray[idUser].nom)
    Cela veut dire que mon tableau est indexé. Si j'ai que 2 users avec les id 23542 et 45124, il va me creer un tableau de taille 45125 cases.
    Après pour les parcours de mes users c'est lourd.

    J'ai trouvé une alternative qui consiste à ecrire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    userArray["_"+ idUser]
    Je vais utiliser ca fonctionne plutot bien.

    Merci bien SpaceFrog pour le coup de pouce

  6. #6
    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 640
    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 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    userArray[idUser.toString()]
    ??

  7. #7
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 53
    Points : 58
    Points
    58
    Par défaut
    Hé hé, cela fonctionne à merveille avec userArray[userID.toString()]

    J'avais essayé avec userArray[String(userID)] mais ca ne fonctionnait pas.

    Avec userArray["1234"] cela revenait à userArray[1234] , ca fonctionnait pas non plus.

    Le toString() marche impeccable.

    Encore merci.

  8. #8
    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 : 54
    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
    Mouais... ceci dit, un identifiant JavaScript (variable, paramètre de fonction, propriété, etc.) est sensé commencer soit par une lettre soit par un underscore...

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 28/05/2009, 17h21
  2. tableau associatif avec 2 requêtes
    Par Vetchostar dans le forum Requêtes
    Réponses: 3
    Dernier message: 29/10/2008, 14h20
  3. [Tableaux] Tableau associatif avec des array
    Par Piccolo_son dans le forum Langage
    Réponses: 6
    Dernier message: 18/12/2007, 08h23
  4. Réponses: 2
    Dernier message: 20/10/2006, 10h25
  5. [Tableaux] tableau associatif avec select
    Par jive dans le forum Langage
    Réponses: 2
    Dernier message: 22/09/2006, 19h45

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