COURS JavaScript


Accueil | Éléments de base du langage JavaScript : Les tables indexées à une dimension (vecteurs)

Les Les tables indexées à une dimension (vecteurs)


Généralités

Vous vous souvenez des variables ? Vous savez, ces zones de mémoire, comme des casiers dans lesquels on range les données dont on a besoin. Une variable, est unique, et ne peut contenir qu'une seule donnée. Pour celles et ceux qui ne s'en souviennent plus, allez réviser Les variables. Hé bien un Vecteur (ou table à une dimension), n'est rien d'autre qu'une variable, mais à l'intérieur de laquelle on peut ranger plusieurs données. Toutes du même type certes, mais autant qu'on veut.

Imaginez un de ces petits meubles pour ranger les CD Audios. Ils sont longs, tout en hauteur, et il y a une case pour chaque CD Audio. Imaginez alors que vous colliez une petite étiquette sur chaque emplacement de rangement, devant chaque CD Audio. Une étiquette sur laquelle vous inscririez un numéro, histoire de pouvoir repérer un CD Audio en particulier. Ainsi, si vous voulez qu'on aille en chercher un dont vous ne vous souvenez plus du titre, vous diriez : "Vas me chercher le CD Audio N° x" Et il n'y aurait pas confusion possible, vus qu'il ne peut y avoir qu'un seul CD Audio par emplacement de rangement. Hé bien un vecteur (table) JavaScript, c'est exactement ça. A un détail près, c'est que nous, nous commencerions à numéroter les emplacements à partir de "1", et que JavaScript lui, commence à numéroter les emplacements à partir de "0".

Le meuble de rangement est la variable indexée que nous appelons une "Table" ou vecteur puisqu'il n'a qu'une seule dimension (un seul meuble avec tous les disques rangés de haut en bas, sur une seule colonne). Si vous aviez plusieurs de ces meubles de rangement de CD Audio, vous donneriez un nom à chaque meuble pour dire "vas me chercher le CD Audio N0 x dans le meuble "Machin". Chaque meuble représenterait alors une table vecteur à une dimension. Et vous pourriez en avoir autant que vous voulez.

Le contenu d'un emplacement de rangement (ce qu'il y a dedans), ici est un CD Audio. Le CD Audio représente le contenu d'un emplacement de la variable table vecteur en JavaScript.

En résumé nous avons :

On peut aussi représenter (arbitrairement) un vecteur comme un tableau en mémoire qui aurait cet aspect (imagé, bien sûr. Ça n'est pas comme ça dans la mémoire de l'ordinateur).

Nom du meuble (ici du tableau) : MeubleClassique

0 1 2 3 4 5 6 7 8 9
Mozart Chopin Haendel Bach Lully Gounod Schubert Brahms Verdi Wagner

Les cases en jaune représentent les étiquettes de la variable MeubleClassique, et les cases blanches les titres des CD Audios (dans les emplacements de rangement). On voit tout de suite que le disque de la case N°3 du meuble est Bach.

Alors, vous vous demandez certainement quelle peut bien être l'utilité d'une telle chose ? Pourquoi se casser la tête à utiliser des variables tables indicées (ou indexées, c'est pareil) ? La raison est simple, et multiple en même temps. D'abord, parce que c'est parfois plus simple de classer des choses dans des cases que l'on peut repérer par un simple numéro, et ensuite, et là, nous n'y pouvons rien, parce que les Navigateurs, lorsqu'ils rencontrent des objets dans vos pages HTML, les rangent dans des tables internes indexées. Et si nous voulons avoir accès à ces objets en série, lorsqu'ils sont très nombreux par exemple, il est plus simple de faire une "boucle" sur une table indexée que de devoir donner un nom à chaque objet. Mais nous verrons ça dans beaucoup de chapitres de la Boîte à outils.


Déclaration d'un vecteur indexé en JavaScript

Le meuble MeubleClassique est le vecteur indexé (on dit une "table" en jargon informatique). C'est une variable au sens JavaScript su terme. MeubleCassique est son nom. Comme toute variable en JavaScript, il va falloir la déclarer si on veut pouvoir s'en servir dans les fonctions dans lesquelles nous en aurons besoin. La déclarer, ça veut dire lui donner un nom, comme à une variable traditionnelle, mais en plus, indiquer à JavaScript que ce sera une table.

Contrairement aux langages traditionnels informatiques, il suffit de déclarer que c'est une table, (Array) en anglais, sans indiquer de taille particulière.

L'instruction est simplement la suivante :

var MeubleClassique = Array();

Ainsi, JavaScript saura que nous voulons définir la variable MeubleClassique comme étant une table indexée.



Comment remplir une table

Nous savons déjà comment remplir une variable traditionnelle (voir Les variables ). Hé bien pour remplir une case d'une table il n'y a qu'à rajouter son "index" dans la table au nom de la variable, et le tour est joué. Par exemple, pour dire que dans la case N°3 de la table MeubleClassique il doit y avoir "Bach", nous dirons simplement :

MeubleClassique[3] = "Bach";

Attention : remarquez bien les crochets ouvrants [ et les crochets fermants ] qui ne sont SURTOUT pas des parenthèses. Si vous mettiez par mégarde des parenthèses, MeubleClassique serait pris pour une fonction par JavaScript. Ce qui serait une erreur désastreuse s'il en est.

Comme vous le voyez, ça n'est pas très compliqué. Attention cependant, la case dite MeubleClassique[3] est en fait la quatrième case de notre meuble, puisque vous vous souvenez que la première case porte le N° 0.



Comment accéder au contenu d'une table

Nous savons déjà comment accéder au contenu d'une variable (voir Les variables ). Hé bien pour accéder au contenu d'une case d'une table indexée, c'est exactement la même chose, sauf qu'il faudra indiquer à JavaScript quel est l'index de la case de la table à laquelle nous voulons accéder. Pour relever le contenu de la case N°3 de la table MeubleClassique, et mettre ce contenu dans une variable appelée par exemple NomDuDisque, nous écrirons l'instruction :

NomDuDisque = MeubleClassique[3];

Attention : remarquez bien les crochets ouvrants [ et les crochets fermants ] qui ne sont toujours pas des parenthèses.

A partir de ce moment là, la variable NomDuDisque contiendra la chaîne de caractère "Bach", qui est aussi le contenu de la case d'index 3 (on dit aussi "indice" en jargon informaticien). Et toujours attention, la case portant l'indice 3 est la quatrième case de la table MeubleClassique puisqu'on se souvient toujours que la première case de la table MeubleClassique porte le N° 0.



Ce cours est enseigné par Philippe Médan 
dans le cadre de la formation des professionnels de l'INTERNET.
au CREFAC , 14 rue Scandicci, 93000 Pantin. Tél. : 01 48 46 51 99
au GITA-GRETA , Lycée Technologique Diderot 61, rue David D'Angers 75019 Paris Tél. : 01 40 40 36 27
au CESI à l'Ecole des ingénieurs, 116 Av Aristide Briand, BP 57, 92224 Bagneux CEDEX Tél. : 01 45 36 70 00
au CFA-AFIA Centre de Formation par l'Apprentissage spécialisé en Informatique DUT Licence MIAGE,
PUIO - Bâtiment 640 - Plateau du Moulon - 91405 Orsay Tél. : 01 69 15 35 19.

© Philippe Médan 1999-2007. Tous droits de reproduction réservés pour tous pays.