• Facile

Ce cours est visible gratuitement en ligne.

Vous pouvez être accompagné et mentoré par un professeur particulier par visioconférence sur ce cours.

J'ai tout compris !

Mis à jour le 14/08/2017

L' objet "Array"

Connectez-vous ou inscrivez-vous gratuitement pour bénéficier de toutes les fonctionnalités de ce cours !

Commençons notre petite visite guidée par un objet qui vous est déjà un tant soit peu familier : Array, pour les tableaux. Il possède plusieurs méthodes que nous ne vous avons pas encore présentées, mais qui vous serviront certainement un jour ou l'autre.

Ce chapitre va vous expliquer le rôle des différents attributs et méthodes des tableaux.
Sa structure (ainsi que celle des prochains) est la suivante :

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

Pas de question ?
Alors, allons-y. :)

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
var t = new Array("toto", "bob");
alert(t.length);
t[4] = "homer";
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é.

Exemple
var t = new Array("toto", "bob", "homer");
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
var t = new Array();
for(var i=0; i<9; i++)
     t[i] = i+1;
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
var t1 = new Array(1,3,5);
var t2 = new Array(2, 4);
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
var t = new Array();
for(var i=0; i<10; i++)
     t[i] = i;
 
t.reverse();
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.
À 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
var t = new Array();
for(var i=0; i<10; i++)
     t[i] = i;
// contient 0,1,2,3,4,5,6,7,8,9
 
var t1 = t.slice(2);
// contient 2,3,4,5,6,7,8,9
 
var t2 = t.slice(2,8);
// contient 2,3,4,5,6,7
 
var t3 = t.slice(-6, -2);
// contient 4,5,6,7
 
var t4 = t.slice(2,-2);
// contient 2,3,4,5,6,7
 
// 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, rassurez-vous :diable: ).

pop()

Description

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

Exemple
var t = new Array(2,4,6,8);
alert(t.pop());

Ce code affichera 8.
À 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
var t = new Array(2,4,6);
t.push(8);

À 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
var t = new Array(2,4,6,8);
alert(t.shift());

Ce code affichera 2.
À 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
var t = new Array(2,4,6);
t.unshift(0);

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

... c'est fini. ;)
(admirez un peu cette conclusion...)

Exemple de certificat de réussite
Exemple de certificat de réussite