L'objet Array
Créé le 07 Juillet 2008, par Anis Safine
Encore une annexe sur un objet très particulier : l'objet Array !
Cet objet est celui associé aux tableaux, et il est tout plein de méthodes très utiles ! Découvrons-les ensemble ! ![]()
![]() |
||
Like The Web vous propose gratuitement ses cours sur les nouveaux langages du web et parfois même les anciens,
afin de permettre à chacun de réaliser facilement des applications web toujours plus riches.
A vous le monde du Web !
Encore une annexe sur un objet très particulier : l'objet Array !
Cet objet est celui associé aux tableaux, et il est tout plein de méthodes très utiles ! Découvrons-les ensemble ! ![]()
Tout comme l'objet String, l'objet Array ne possède qu'une seule propriété. Et encore plus fort, ils ont la même ! ![]()
tableau.length
La propriété length donne la longueur de "tableau", soit son nombre de cases. Elle s'utilise comme suit :
var tableau = new Array(0, 1, 2, 3, 4);
document.write(tableau.length); // Affiche 5
Il est possible de modifier cette propriété ! Si on augmente sa valeur, de nouvelles cases sont créées avec pour valeur "undefined", mais si on la diminue, les dernières cases en trop sont supprimées, ainsi que leur valeur.
L'exemple suivant illustre ce dernier point :
var tableau = new Array(0, 1, 2, 3, 4);
// La dernière case existe encore, on affiche sa valeur
document.write(tableau[4]); // Affiche 4
// On supprime la dernière case en décrémentant la longueur de "tableau"
tableau.length--;
// La dernière case est supprimée, sa valeur n'existe plus
document.write(tableau[4]); // Affiche undefined
Array est riche en méthodes toutes plus utiles les unes que les autres ! Les voici :
tableau.join(separateur)
La méthode join() est incroyablement utile car elle permet de récupérer la valeur de chaque case de "tableau" pour les lister dans une chaîne, séparés par "separateur". Cet argument est facultatif, et s'il n'est pas précisé, les valeurs sont séparées par une virgule.
Par exemple, si vous avez un tableau [0, 1, 2, 3], vous obtiendrez la chaîne "0,1,2,3". ![]()
Voici un exemple concret :
var tableau = new Array(0, 1, 2, 3, 4);
document.write(tableau.join()); // Affiche "0,1,2,3,4"
document.write("<br/>");
document.write(tableau.join(" - ")); // Affiche "0 - 1 - 2 - 3 - 4"
tableau.pop()
Cette méthode récupère la valeur de la dernière case de "tableau" et puis supprime cette dernière case :
var tableau = new Array(0, 1, 2, 3, 4);
var derniere_case = tableau.pop();
// On vérifie que la dernière case n'existe plus
document.write(tableau[4]); // Affiche "undefined"
// On vérifie que la valeur de la dernière case a bien été récupérée
document.write("<br/>La dernière case contenait : " + derniere_case); // Affiche "La dernière case contenait : 4"
tableau.push(valeur1, valeur2, ..., valeurX)
Cette méthode permet de rajouter X valeurs à "tableau", c'est à dire autant que vous le désirez, et renvoi la nouvelle taille du tableau ! Ces valeurs sont placées tout à la fin de "tableau" dans de nouvelles cases créées spécialement pour elles ! ![]()
En voici un exemple :
var tableau = new Array(0, 1, 2, 3, 4);
// On rajoute 5, 6 et 7
var longueur = tableau.push(5, 6, 7);
// On affiche le contenu du tableau
document.write("tableau a une longueur de " + longueur + " et contient : ");
document.write(tableau.join(" - "));
On remarque au passage toute l'utilité de la méthode join() ! ![]()
tableau.reverse()
Cette méthode inverse simplement l'ordre des cases de "tableau". Un exemple simple :
var tableau = new Array(0, 1, 2, 3, 4);
tableau.reverse();
document.write(tableau.join(" - ")); // Affiche "4 - 3 - 2 - 1 - 0"
tableau.shift()
Cette méthode fait exactement l'inverse de la méthode pop(), c'est à dire qu'elle récupère la valeur de la première case de "tableau" avant de supprimer cette case. Bien évidemment, les autres cases sont décalées d'un cran en arrière pour occuper l'espace vide laissé par la première case. ![]()
En voici un exemple :
var tableau = new Array(0, 1, 2, 3, 4);
var premiere_case = tableau.shift();
// On vérifie que les cases sont décalées
document.write(tableau[0]); // Affiche 1
// On vérifie qu'une case a bien été supprimée
document.write(tableau[4]); // Affiche undefined
// On vérifie que la valeur de la première case a bien été récupérée
document.write(premiere_case); // Affiche 0
tableau.slice(debut, fin)
Cette méthode renvoi une partie de "tableau", en récupérant toutes les cases de la case d'indice "debut" à la case d'indice "fin" - 1. Bien sûr, "debut" et "fin" doivent être des entiers, et si "fin" - 1 est plus grand que le dernier indice de "tableau" ou qu'il n'est pas précisé, le "découpage" se fait jusqu'à la fin de "tableau". ![]()
Attention, si vous faites slice(4, 7), seules les cases d'indice 4, 5 et 6 sont récupérées ! J'insiste bien sur le fait que les cases découpées sont celles d'indice "debut" à "fin" - 1 !
Voici un exemple :
var tableau = new Array(0, 1, 2, 3, 4);
var mini_tableau = tableau.slice(1, 3);
// On affiche, la portion découpée
document.write("mini_tableau est long de " + mini_tableau.length + " cases et contient : " + mini_tableau.join(", "));
Une dernière chose à savoir est que si "debut" est négatif, la "case de départ" est choisie depuis la fin de "tableau" : -1 représente la dernière case, -2 l'avant dernière etc. Pareil pour "fin" ! ![]()
Ainsi, en prenant des valeurs négatives, le même découpage qu'au-dessus peut s'écrire :
var tableau = new Array(0, 1, 2, 3, 4);
var mini_tableau = tableau.slice(-3, -1);
// On affiche, la portion découpée
document.write("mini_tableau est long de " + mini_tableau.length + " cases et contient : " + mini_tableau.join(", "));
tableau.sort(ordreDeTri)
La méthode sort() trie les cases de "tableau" dans l'ordre alphabétique. ![]()
L'argument ordreDeTri permet de trier autrement que par ordre alphabétique, mais il faut savoir créer ses propres fonctions pour pouvoir l'utiliser. Je n'aborderais donc pas cette possibilité pour le moment, mais cela sera vite corrigé !
En attendant, un exemple d'utilisation de sort() sans argument :
var tableau = new Array(3, 4, 1, 0, 2);
tableau.sort();
document.write(tableau.join()); // Affiche 0,1,2,3,4
tableau.unshift(valeur1, valeur2, ..., valeurX)
Cette méthode permet d'insérer toutes les valeurs, de "valeur1", à "valeurX", et dans cet ordre, au tout début de "tableau", de nouvelles cases étant créées spécialement pour elles ! ![]()
Elle retourne également la nouvelle taille du tableau après insertion des valeurs. Un exemple :
var tableau = new Array(2, 3, 4);
var longueur = tableau.unshift(0, 1);
document.write("tableau est long de " + longueur + " cases et contient : " + tableau.join());