Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1824 connectés 

  FORUM HardWare.fr
  Programmation
  Flash/ActionScript

  Tableaux multidimensionnels...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Tableaux multidimensionnels...

n°1144350
freed102
Arayashiki
Posté le 08-07-2005 à 14:01:15  profilanswer
 

j'ai lu que ça buggassait... est-ce vrai ?
 
 

Citation :


Etagere = new Array()
Etagere[0,0]="Whisky"
Etagere[0,1]="Gin"
Etagere[0,2]="Vodka"
  Etagere[1,0]="Jus d'orange"
  Etagere[1,1]="Sirop de grenadine"
  Etagere[1,2]="Soda"
trace (Etagere[0,0]) // Jus d'orange
trace (Etagere[0,1]) // Sirop de grenadine
trace (Etagere[0,2]) // Soda
  trace (Etagere[1,0]) // Jus d'orange
  trace (Etagere[1,1]) // Sirop de grenadine
  trace (Etagere[1,2]) // Soda
trace (Etagere.length) // 3 !!!
 
Donc, pas de tableaux multi-dimensionnels ! Ou alors c'est moi qui n'ai rien compris...
 

mood
Publicité
Posté le 08-07-2005 à 14:01:15  profilanswer
 

n°1144373
freed102
Arayashiki
Posté le 08-07-2005 à 14:20:47  profilanswer
 

je viens de faire le test...
 

Code :
  1. item=new Array();
  2. item[0,1]="Dupont";
  3. item[0,2]="André";
  4. item[1,1]="Lepont";
  5. item[1,2]="Pierre";
  6. trace("nom 0 :"+item[0,1]);
  7. trace("prenom 0 :"+item[0,2]);
  8. trace("nom 1 :"+item[1,1]);
  9. trace("prenom 1 :"+item[1,2]);


 
me retourne :
 
nom 0 : Lepont
prenom 0 : Pierre
nom 1 : Lepont
prenom 1 : Pierre
 
 
et

Code :
  1. item=new Array();
  2. item[0,nom]="Dupont";
  3. item[0,prenom]="André";
  4. item[1,nom]="Lepont";
  5. item[1,prenom]="Pierre";
  6. trace("nom 0 :"+item[0,nom]);
  7. trace("prenom 0 :"+item[0,prenom]);
  8. trace("nom 1 :"+item[1,nom]);
  9. trace("prenom 1 :"+item[1,prenom]);


 
me retourne :
 
nom 0 : Pierre
prenom 0 : Pierre
nom 1 : Pierre
prenom 1 : Pierre
 
:(:(:(.... comment faire alors ?


Message édité par freed102 le 08-07-2005 à 14:21:22
n°1144383
freed102
Arayashiki
Posté le 08-07-2005 à 14:26:35  profilanswer
 

et ça :
 

Code :
  1. item=new Array();
  2. item[0][nom]="Dupont";
  3. item[0][prenom]="André";
  4. item[1][nom]="Lepont";
  5. item[1][prenom]="Pierre";
  6. trace("nom 0 :"+item[0][nom]);
  7. trace("prenom 0 :"+item[0][prenom]);
  8. trace("nom 1 :"+item[1][nom]);
  9. trace("prenom 1 :"+item[1][prenom]);


 
me retourne :
 
nom 0 :undefined
prenom 0 :undefined
nom 1 :undefined
prenom 1 :undefined

n°1148759
bozocarzu
Posté le 13-07-2005 à 11:00:37  profilanswer
 

freed102 a écrit :

et ça :
 

Code :
  1. item=new Array();
  2. item[0][nom]="Dupont";
  3. item[0][prenom]="André";
  4. item[1][nom]="Lepont";
  5. item[1][prenom]="Pierre";
  6. trace("nom 0 :"+item[0][nom]);
  7. trace("prenom 0 :"+item[0][prenom]);
  8. trace("nom 1 :"+item[1][nom]);
  9. trace("prenom 1 :"+item[1][prenom]);


 
me retourne :
 
nom 0 :undefined
prenom 0 :undefined
nom 1 :undefined
prenom 1 :undefined


 
et ça ?

Code :
  1. item=new Array();
  2. item[0]["nom"]="Dupont";
  3. item[0]["prenom"]="André";
  4. item[1]["nom"]="Lepont";
  5. item[1]["prenom"]="Pierre";
  6. trace("nom 0 :"+item[0]["nom"]);
  7. trace("prenom 0 :"+item[0]["prenom"]);
  8. trace("nom 1 :"+item[1]["nom"]);
  9. trace("prenom 1 :"+item[1]["prenom"]);


Message édité par bozocarzu le 13-07-2005 à 11:05:09
n°1149018
titouille
Posté le 13-07-2005 à 13:41:12  profilanswer
 

lol :)
 
Tout ça ne fonctionnera pas, pour la simple et bonne raison que vous initialisez un tableau à une dimension (new Array()) et que vous essayez directement d'affecter une 2ème dimension...
 
 
Pour faire ce que vous désirez, vous pouvez le faire de bien des syntaxes.
 
Commençons par la plus logique et standard :

Code :
  1. var a1a:Array = new Array();
  2. a1a[0] = new Array();
  3. a1a[0][0] = 'hello';
  4. a1a[0][1] = 'world';
  5. a1a[1] = new Array();
  6. a1a[1][0] = '2ème';
  7. a1a[1][1] = 'ligne';


 
au niveau des indexs alphanumériques, ça donnerai ça :

Code :
  1. var a2a:Array = new Array();
  2. a2a[0] = new Array();
  3. a2a[0]['mot1'] = 'hello';
  4. a2a[0]['mot2'] = 'world';
  5. a2a[1] = new Array();
  6. a2a[1]['mot1'] = '2ème';
  7. a2a[1]['mot2'] = 'ligne';


 
Attention à toujours utiliser une chaine de caractère, ou une variable représentant une chaine de caractère, sinon ça ne va pas jouer... Et ceci n'est plus un tableau multidimensionnel, mais un tableau d'objet, ou plus communément appelé "dataProvider".
 
ça, c'est pour bien comprendre. Maintenant, l'actionScript permet quelques syntaxes rapides qui sont bien utiles pour ce genre de problèmes :
 
La base :

Code :
  1. // indexes numériques
  2. var a1b:Array = new Array();
  3. a1b[0] = new Array( 'hello', 'world' );
  4. a1b[1] = new Array( '2ème', 'ligne' );
  5. // indexes alphanumériques
  6. var a2b:Array = new Array();
  7. a2b[0] = new Object( { mot1:'hello', mot2:'world' } );
  8. a2b[1] = new Object( { mot1:'2ème', mot2:'ligne' } );


 
Un peu plus rapide, maintenant :
 

Code :
  1. // indexes numériques, un tableau est créé en mettant les crochets
  2. var a1c:Array = new Array();
  3. a1c[0] = ['hello', 'world'];
  4. a1c[1] = ['2ème', 'ligne'];
  5. // indexes alphanumériques, un objet est créé en mettant les accolades
  6. var a2c:Array = new Array();
  7. a2c[0] = { mot1:'hello', mot2:'world' };
  8. a2c[1] = { mot1:'2ème', mot2:'ligne' };


 
et enfin, la déclaration ultime :
 

Code :
  1. // indexes numériques
  2. var a1d:Array = [['hello', 'world'], ['2ème', 'ligne']];
  3. // indexes alphanumériques (tableau d'objets de type dataProvider)
  4. var a2d:Array =
  5.     [
  6.     { mot1:'hello', mot2:'world' },
  7.     { mot1:'2ème', mot2:'ligne' }
  8.     ];


 
 
Vala :pt1cable:
 
Enfin, au niveau du pointage, on peut récupérer le contenu d'un dataProvider en pointant sur son nom de 2 manières :
 
a2d[0]['mot1'] donnera 'hello'
a2d[0].mot1 donnera la même valeur, 'hello'
 
Bon courage, a++

n°1950687
ThiMacGuy
Hazard is the Wizard of Life
Posté le 16-12-2009 à 03:34:53  profilanswer
 

Bravo pour cette réponse exhaustive titouille.
 
Merci!


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Flash/ActionScript

  Tableaux multidimensionnels...

 

Sujets relatifs
les pointeurs , les tableaux ??? je mis perd[Résolu] [C#] Déclaration de tableaux d'objets à taille inconnue
ezPDF => tableaux et position "y"Probleme super etrange de tableaux superposés [resolu]
Bordures des tableaux sous FireFoxcss et tableaux?
Aligner deux tableauxProbleme avec tableaux, demande d'aide aux spécialistes!
[Résolu] tableaux et sessions[PHP]Tableaux multidimensionnels
Plus de sujets relatifs à : Tableaux multidimensionnels...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR