
|
|
|
JavaScript - Les tableaux
|
Autre langage disponible pour cet article :
Rubrique : JavaScript
lundi 25 mars 2002 18:40
|
Voir les commentaires pour JavaScript - Les tableaux
|
- Propriétés
- length
- Méthodes
- concat()
- join()
- reverse()
- slice()
- sort()
- Tableau multi-dimensionnels
- Tableaux associatifs
Les tableaux permettent de stocker facilement des données et de pouvoir y accéder par la suite.
Une variable ne peut contenir qu'une seule et unique valeur. Un tableau peut en contenir infiniment.
JavaScript étant orienté objet, les tableaux ne font pas exception : ce sont des objets avec leurs propriétés
et leurs méthodes.
Pour créer un objet, on utilise la syntaxe suivante :
var indentificateur = new constructeur(argument1, argument2, ...);
L'identificateur doit être un identificateur valide, qui doit suivre les même rêgles que pour les noms de variables.
Le constructeur doit être une fonction constructeur valide (nous étudierons plus en détails par la suite).
Ici, le constructeur est Array (avec un A majuscule).
Viennent ensuite les arguments. Il peut y en avoir ou pas.
Donc, pour créer un tableau que nous appelerons livres, nous écrirons :
var livres = new Array();// ne pas oublier les parenthèses vides
En peut ensuite accéder aux éléments de ce tableau en spécifiant l'index de l'élement conserné entre crochets
([ et ]). Ansi :
var livres = new Array();
livres[0] = "Critias";
livres[1] = "Pensées";
livres[2] = "Odyssée";
document.write("1<sup>er</sup> livre : " + livres[0] + "<br>");// Critias
document.write("2<sup>eme</sup> livre : " + livres[1] + "<br>");// Pensées
document.write("3<sup>eme</sup> livre : " + livres[2] + "<br>");// Odyssée
Une seconde possibilité de créer un tableau est d'utiliser la manière littérale. On passe en arguments, au moment
de la création du tableau, les différents élements.
L'exemple suivant est donc équivalent au précedent :
var livres = new Array("Critias", "Pensées", "Odyssée");
document.write("1<sup>er</sup> livre : " + livres[0] + "<br>");// Critias
document.write("2<sup>eme</sup> livre : " + livres[1] + "<br>");// Pensées
document.write("3<sup>eme</sup> livre : " + livres[2] + "<br>");// Odyssée
Ou on peut aussi écrire sous une autre forme, sans utiliser Array, avec des crochets :
var livres = ["Critias", "Pensées", "Odyssée"];
document.write("1<sup>er</sup> livre : " + livres[0] + "<br>");// Critias
document.write("2<sup>eme</sup> livre : " + livres[1] + "<br>");// Pensées
document.write("3<sup>eme</sup> livre : " + livres[2] + "<br>");// Odyssée
Une dernière possibilité de créer un tableau est de passer en argument la longeur de celui-ci.
Exemple :
var MonTableau = new Array(10);// 10 élements
// Voir plus loin pour la propriété length
document.write(MonTableau.length);// Sortie -> 10
Propriétés
Comme tout objet, Array à également des propriétés. En fait, Array n'en a qu'une
seule :
- length
- Renvoi le nombre d'élements contenus dans la table. Par exemple :
var livres = new Array("Critias", "Pensées", "Odyssée");
document.write(livres.length);// Sortie -> 3
Cette propriété est utile pour parcourir un tableau à l'aide d'une boucle :
var livres = new Array("Critias", "Pensées", "Odyssée");
for(var i=0; i < livres.length; i++)
document.write("Livre N°" + i + " : " + livres[i] + "<br>");
Méthodes
- concat()
- Permet de faire de deux tableaux un seul. La table à ajouter doit être passée en argument :
var MesLivres = new Array("Critias", "Pensées", "Odyssée");
var TesLivres = new Array("Voyage en Italie", "Le crépuscule des Idoles");
MesLivres.concat(TesLivres);// On ajoute le tableau TesLivres
- join()
- Créer une chaîne de caractères avec les élements du tableau. Les élements sont séparés avec la
chaîne de caractères passée en argument qui reste optionelle.
Exemple :
var livres = new Array("Critias", "Pensées", "Odyssée");
var Texte = livres.join("<br>");
document.write(Texte);
- reverse()
- Inverse l'ordre des élements du tableau. Le 1er devient le dernier, le 2ème l'avant dernier, etc...
var livres = new Array("Critias", "Pensées", "Odyssée");
livres.reverse();
for(var i=0; i < livres.length; i++)
document.write(livres[i] + "<br>");
- slice()
- Renvoi un tableau contenant une partie du tableau. Le 1er argument correspond à l'index
de départ. Le 2ème argument est optionnel. Il correspond à l'index de fin. Si il est omis,
tous les index jusqu'à la fin du tableau seront renvoyés.
var liste = new Array("un", "deux", "trois", "quatre", "cinq");
var maliste = liste.slice(1, 4);
for(var i=0; i < maliste.length; i++)
document.write(maliste[i] + "<br>");
- sort()
- Permet de trier un tableau selon les valeurs des élements de celui ci. Si aucun argument n'est transmis,
le tableau est trié par ordre alphabétique.
L'argument possible est une fonction de tri (les fonctions seront étudiées plus loin). Cette fonction doit
recevoir 2 arguments et livrer en retour une valeur négative si le 1er argument doit être placé avant
le 2ème, ou positive pour l'inverse.
var liste = new Array("un", "deux", "trois", "quatre", "cinq");
liste.sort();
for(var i=0; i < liste.length; i++)
document.write(liste[i] + "<br>");
Tableau multi-dimensionnels
Pour créer un tableau ayant plusieurs dimensions. Il suffit de créer un objet Array pour chaque
rangées de ce tableau :
var Tableau = new Array(10);
for(var i=0; i < Tableau.length; i++)
Tableau[i]=new Array(10);
// On accéde ainsi aux éléments de ce tableau à deux dimensions :
Tableau[5][5] = "Je suis quasi-au milieu de ce tableau";
Partant de ce principe, on peut utiliser autant de dimensions que l'on veut.
Tableaux associatifs
La différence entre un tableau associatif et un tableau classique, c'est qu'un tableau associatif n'utilise
pas la méthode numérique pour indexer les différents élements, mais des noms.
Dans un tableau classique, on accéde par exemple ainsi à un élement :
var MonTableau = new Array();
MonTableau[0] = "Goldorak";// On accéde à l'élement 0
document.write(MonTableau[0]);// Sortie -> Goldorak
Avec un tableau associatif, on y accedera ainsi :
var MonTableau = new Array();
MonTableau["nom"] = "Goldorak";// On accéde à l'élement "nom"
document.write(MonTableau["nom"]);// Sortie -> Goldorak
C'est tableau sont dans certains cas plus commodes a utiliser.
Pour parcourir un tableau de ce type à l'aide d'une boucle, il faut utiliser la boucle for...in :
var Vainqueurs = new Array();
// Critérium du Dauphiné 4-11 juin 2000
Vainqueurs["Grenoble- La Bastille (prologue)"] = "Alberto Lopez de Munain";
Vainqueurs["Grenoble - Lyon"] = "Frédéric Guesdon";
Vainqueurs["Châtillon sur Chalaronne - Saint Etienne"] = "Fabrice Gougot";
Vainqueurs["Saint Etienne - Saint Etienne (contre la montre)"] = "Lance Armstrong";
Vainqueurs["Romans - Le mont Ventoux"] = "Tyler Hamilton";
Vainqueurs["Beaumes de Venise - Dignes les Bains"] = "Tyler Hamilton";
Vainqueurs["Digne les Bains - Briançon"] = "Inigo Cuesta";
Vainqueurs["Saint Jean de Maurienne - Salanches"] = "Laurent Jalabet";
for(Etape in Vainqueurs)
document.write(Etape + " : " + Vainqueurs[Etape] + "<br>");
|
Voir les commentaires pour JavaScript - Les tableaux
|
|
|
|