Tableau et objet imbriqué

© Christian PAULUS. Document créé le 27 septembre 2004 , mis à jour le 14 mars 2007.

Qu'importe le flacon, pourvu qu'on ait l'ivresse. Alfred de Musset

Accueil du site > Astuces > Flash > Tableau et objet imbriqué

Astuce / Flash 6+

Il est possible d’insérer dans un tableau (Array) plusieurs dimensions, et dans l’une d’elle, un objet de classe Object. Attention toutefois, si le tableau bénéficie de la méthode length(), celle-ci n’existe pas pour l’objet Object. L’objet Object offre pourtant la possibilité de nommer les clés, à la façon de PHP, ce qui est parfois bien pratique.

Voici une déclaration de tableau contenant un objet Object :

$test_array = new Array (); // déclaration du tableau
$test_array[0] = new Array (); // déclaration d'un tableau vide
$test_array[1] = ["bleu", "blanc", "rouge"]; // ajout d'un tableau de 3 valeurs
$test_array[2] = new Array (); // déclaration du tableau en index 2
$test_array[2][0] = "violet"; // une chaîne dans le premier index du 2
$test_array[2][1] = new Array (); // tableau 2D dans le second index
$test_array[2][1][0] = new Array (); // tableau en 3D dans le premier du précédent
$test_array[2][1][1] = "Troisième dimension"; // une chaîne
$test_array[2][1][2] = new Array (); // tableau en 4D dans le quatrième
$test_array[2][1][2][0] = "Quatrième dimension";
// ajout d'un objet dans le tableau,
// A noter: dans un index bien loin des précédents (9)
$test_array[2][1][9] = {$a:"A",$b:"B"};
$test_array[1][1][8] = ["gris"]; // chaîne dans l'index précédent

Si vous parcourez ce tableau par une boucle basée sur la méthode length(), vous ne retrouverez pas vos petits. Le mieux est d’utiliser la boucle for(var in ...).

Zip - 3.7 ko

Le fichier source (fla) ci-dessus donne en exemple (et en prototype récursif) permettant d’afficher le contenu d’un tableau, qui donne dans le cas cité :

function ())..[dumpValues]
(object).......[2] Array
(function ())..[2][dumpValues]
(object).......[2][1] Array
(function ())..[2][1][dumpValues]
(object).......[2][1][9] Object
(function ())..[2][1][9][dumpValues]
(string).......[2][1][9][$a]: "A"
(string).......[2][1][9][$b]: "B"
(object).......[2][1][2] Array
(function ())..[2][1][2][dumpValues]
(string).......[2][1][2][0]: "Quatrième dimension"
(string).......[2][1][1]: "Troisième dimension"
(object).......[2][1][0] Array
(function ())..[2][1][0][dumpValues]
(string).......[2][0]: "violet"
(object).......[1] Array
(function ())..[1][dumpValues]
(string).......[1][2]: "rouge"
(string).......[1][1]: "blanc"v (string).......[1][0]: "bleu"
(object).......[0] Array
(function ())..[0][dumpValues]

Plussoyez !

Les forums sont fermés.