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.
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é.
 |
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.