Tableau associatif avec clé numerique

Tableau associatif avec clé numerique - HTML/CSS - Programmation

Marsh Posté le 05-11-2010 à 10:06:29    

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 :
  1. var user1 = {};
  2. user1.nom = "DUPONT";
  3. user1.prenom = "Jean";
  4. userArray["1234"] = user1;
  5. //ou
  6. userArray.1234 = user1;


 
Cependant cela ne fonctionne pas.
 
Y'a t'il une solution ?
 
Merci d'avance.

Reply

Marsh Posté le 05-11-2010 à 10:06:29   

Reply

Marsh Posté le 05-11-2010 à 10:51:42    

Les tableaux associatifs on besoin d'avoir une chaîne de caractères entre crochets au lieu d'un nombre.
 
Voici un exemple que j'ai testé:

Code :
  1. <html>
  2. <head>
  3. <script language="JavaScript">
  4. // Test d'un tableau associatif
  5. // Voir http://www.pageresource.com/jscript/jarray2.htm
  6. var users = new Array(); // variable globale
  7. function init_users()
  8. {
  9.   users["5"]="Mlle Cinq";
  10.   users["123"]="Mme Un-Deux-Trois";
  11.   users["222"]="M. Deuxdeuxdeux";
  12. }
  13. function get_usernom(no)
  14. {
  15.   document.getElementById("user"+String(no)+"nom" ).value = users[String(no)];
  16. }
  17. </script>
  18. </head>
  19. <body onLoad="javascript:init_users();">
  20. <h1>Test d'un tableau associatif</h1>
  21. <form>
  22. <p>user 123: <input type="text" id="user123nom" size="30" value="">
  23. <input type="button" value="init" onClick="javascript:get_usernom(123);">
  24. <p>user 222: <input type="text" id="user222nom" size="30" value="">
  25. <input type="button" value="init" onClick="javascript:get_usernom(222);">
  26. <p>user 5: <input type="text" id="user5nom" size="30" value="">
  27. <input type="button" value="init" onClick="javascript:get_usernom(5);">
  28. </form>
  29. </body>
  30. </html>


Reply

Marsh Posté le 05-11-2010 à 11:07:40    

Code :
  1. users[String(no)]


fonctionne comme
 

Code :
  1. users[no]


 
Il me créait ca comme un tableau indexé.
 
Hors moi je ne veux pas car c'est super lourd les parcours de tableau

Reply

Marsh Posté le 05-11-2010 à 11:21:02    

Citation :

c'est super lourd les parcours de tableau

Il n'y a pas de parcours de tableaux dans l'exemple que j'ai donné. C'est un tableau associatif, comme en PHP ou dans d'autres langages. La manière interne dont Javascript gère son tableau est l'affaire du navigateur. Peut-être que certains navigateurs très primitifs parcourent une liste, mais ce ne doit pas être le cas pour tous les grands navigateurs actuels. Je suppose qu'il doit y avoir plutôt une table de hashage et donc ça doit être rapide. Et même un parcours est assez rapide quand il est fait en mémoire sur un tableau de taille raisonnable. Charger une image (je ne parle même pas d'une animation) est probablement plus consommateur en ressources qu'un parcours banal de tableau. Si vous avez des problèmes de performance, montrez nous votre script, SVP.

Reply

Marsh Posté le 05-11-2010 à 11:35:46    

Je viens de trouver une méthode alternative à mon soucis.
Il me faut en index de mon tableau une clé (chaine) hors moi je n'ai que des valeurs numerique.
Je fais simplement userArray["_"+ indexUser] est mon tableau est bien rempli comme tableau associatif.
 
Merci bien olivthill pour le temps conscré

Reply

Marsh Posté le 05-11-2010 à 12:00:14    

Encore mieux que ce que j'avais trouvé avec les _
 
userArray[indexUser.toString()], tout simplement
 
Et ca fonctionne très bien

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed