Alain Barraud Mémento informatique  
 
Accueil Logithèque - SE Photo - vidéo Internet - protocoles Site Web PC - Réseau Archives
Page ouverte le 26/06/2009

JavaScript - L'objet "Array"

Objet Array pour les tableaux. Il possède plusieurs méthodes.

Ce chapitre va expliquer le rôle des différents attributs et méthodes des tableaux.

Structure du chapitre :
  • un sommaire, récapitulant les attributs et méthodes traités dans le chapitre, avec une brève description.
  • des sous-parties regroupant des explications et des exemples pour chacun des attributs / méthodes, classés par thèmes.

Retour accueil JS


Sommaire

Sommaire

Les classiques

  • length
  • join(separateur) : retourne le contenu sous forme de chaîne de caractères
  • sort() : trie le tableau.

Moins classiques

  • concat(t) : concatène avec le tableau t
  • reverse() : inverse l'ordre des éléments
  • slice(debut, fin) : extrait une partie du tableau.

Les piles et les files

  • pop() : retire et renvoie le dernier élément du tableau
  • push(x) : ajoute l'élément x à la fin du tableau
  • shift() : retire et renvoie le premier élément du tableau
  • unshift(x) : ajoute l'élément x au début du tableau.

Les classiques

length

Description

Cet attribut contient la longueur du tableau.

Exemple

Code : JavaScript
1     var t = new Array("toto", "bob");
2     alert(t.length);
3     t[4] = "homer";
4     alert(t.length);

Ce qui affichera 2, puis 5.
En effet, dans le second cas, le tableau contiendra : "toto", "bob", [rien], [rien], "homer". Le dernier élément est donc le cinquième.

sort()

Description

Trie le tableau par ordre croissant (par ordre alphabétique pour des chaînes de caractères).
Ne renvoie rien : c'est le tableau avec lequel on appelle cette méthode qui est modifié.
alt En triant un tableau, l'ordre des éléments est modifié.
Une fois trié, il est impossible de retrouver l'ordre initial.

Exemple

Code : JavaScript
1     var t = new Array("toto", "bob", "homer");
2     t.sort();

Au final, le tableau contient, dans cet ordre : "bob", "homer", "toto".

join(separateur)

Description

Renvoie tous les éléments du tableaux séparés par séparateur, sous forme de chaîne de caractères. Si aucun séparateur n'est précisé, c'est la virgule qui est utilisée.
Utile lorsqu'on teste un script.

Exemple

Code : JavaScript
1     var t = new Array();
2     for(var i=0; i<9; i++)
3         t[i] = i+1;
4     alert(t.join('-'));

Ceci affichera 1-2-3-4-5-6-7-8-9.

Moins classiques

concat(t)

Description

Renvoie un tableau contenant les éléments du tableau, à la fin desquels sont ajoutés les éléments du tableau t.
Il est possible de mettre plusieurs arguments : monTableau.concat(t1, t2, t3, t4).

Exemple

Code : JavaScript
1     var t1 = new Array(1,3,5);
2     var t2 = new Array(2, 4);
3     var t = t1.concat(t2);

t contient 1,3,5,2,4.

reverse()

Description

Inverse l'ordre des éléments (le tableau d'origine est modifié).

Exemple

Code : JavaScript
1     var t1 = new Array();
2     for(var i=0; i<10; i++)
3         t[i] = i;
4
5     t.reverse();
6     t.reverse();

Au début (juste après la boucle), t contient 0,1,2,3,4,5,6,7,8,9.
Au milieu (entre les deux reverse), il contient 9,8,7,6,5,4,3,2,1,0.
A la fin, il contient à nouveau 0,1,2,3,4,5,6,7,8,9.

slice(debut, fin)

Description

t.slice(debut, fin) retourne le tableau composé des éléments de t entre debut (inclus) et fin (exclus).
Si les valeurs sont négatives, les éléments sont comptés à partir de la fin.

Il est possible d'appeler t.slice(debut) (sans indiquer la fin), auquel cas le tableau retourné contient tous les éléments à partir de debut, et jusqu'à la fin du tableau.

Le tableau d'origine n'est pas modifié.

Exemple

Code : JavaScript
1     var t = new Array();
2     for(var i=0; i<10; i++)
3         t[i] = i;
4 // contient 0,1,2,3,4,5,6,7,8,9
5
6     var t1 = t.slice(2);
7 // contient 2,3,4,5,6,7,8,9
8
9     var t2 = t.slice(2,8);
10 // contient 2,3,4,5,6,7
11
12     var t3 = t.slice(-6, -2);
13 // contient 4,5,6,7
14
15     var t4 = t.slice(2, -2);
16 // contient 2,3,4,5,6,7
17
18 // t contient toujours 0,1,2,3,4,5,6,7,8,9

Les piles et les files

Ces fonctions ressemblent à celles utilisées avec les piles ou les files (c'est un sujet qui sera abordé en TD).

Description

Retire le dernier élément du tableau, et renvoie sa valeur.

Exemple

Code : JavaScript
1     var t = new Array(2,4,6,8);
2     alert(t.pop());

Ce code affichera 8.
A la fin, t contient 2,4,6.

push(x)

Description

Ajoute l'élément x à la fin du tableau (en quelque sorte le contraire de pop()).

Remarque

Accepte un nombre quelconque de paramètres : ils sont tous ajoutés à la fin du tableau.
Dans les dernières version de JS, c'est la nouvelle taille du tableau qui est renvoyée (il n'est cependant pas d'usage de récupérer la taille d'un tableau lorsqu'on travaille avec cette fonction).

Exemple

Code : JavaScript
1     var t = new Array(2,4,6);
2     t.push(8);

A la fin, t contient 2,4,6,8.

shift()

Description

Retire le premier élément du tableau, et renvoie sa valeur.
Les autres éléments sont décalés vers le haut pour "combler le trou".

Remarque

Le décalage des éléments prend du temps lorsque le tableau est long : cette fonction n'est donc pas bien adaptée pour utiliser un tableau comme une pile ou une file.

Exemple

Code : JavaScript
1     var t = new Array(2,4,6,8);
2     alert(t.shift());

Ce code affichera 2.
A la fin, t contient 4,6,8.

unshift(x)

Description

Ajoute l'élément x au début du tableau (en quelque sorte le contraire de shift()).
Les éléments sont décalés vers le bas.

Remarque

Accepte un nombre quelconque de paramètres : ils sont tous ajoutés au début du tableau.
La nouvelle taille du tableau est renvoyée (il n'est cependant pas d'usage de récupérer la taille d'un tableau lorsqu'on travaille avec cette fonction).
Le décalage des éléments prend du temps lorsque le tableau est long : cette fonction n'est donc pas bien adaptée pour utiliser un tableau comme une pile ou une file.

Exemple

Code : JavaScript
1     var t = new Array(2,4,6);
2     t.unshift(0);

A la fin, t contient 0,2,4,6.

Piles et files ?

En conclusion de cette sous-partie : l'utilisation des tableaux comme files est déconseillée (elle nécessite d'utiliser shift ou unshift, qui ne sont pas des fonctions très adaptées).

Cependant, une utilisation comme pile est tout à fait possible, grâce à t.push(x) pour empiler, t.pop() pour dépiler, et la condition t.length == 0 pour savoir si la pile est vide ou non.