L'objet Array

L'objet Array

JavaScript ne dispose pas d'un type de données explicite pour les tableaux. Cependant, il est possible d'utiliser l'objet prédéfini Array et ses méthodes pour travailler avec des tableaux dans vos applications. L'objet Array dispose de méthodes pour manipuler des tableaux de diverses manières, comme des fusions, des inversions et des tris. Une de ses propriétés permet de déterminer la longueur du tableau et d'autres peuvent être combinées avec des expressions rationnelles.

Un tableau (array) est un ensemble ordonné de valeurs auxquelles on peut se référer avec un nom et un index. Par exemple, vous pourriez avoir un tableau appelé emp contenant des noms d'employés indexés par leur numéro d'employé. Ainsi, emp[1] serait l'employé numéro un, emp[2] l'employé numéro deux, et ainsi de suite.

Création d'un objet Array

Pour créer un objet Array :

1. nomObjetArray = new Array(element0, element1, ..., elementN)
2. nomObjetArray = new Array(longueur)

nomObjetArray est soit le nom d'un nouvel objet, soit la propriété d'un objet existant. Lors de l'utilisation des propriétés et méthodes de Array, nomObjetArray est soit le nom d'un objet Array existant, soit une propriété d'un objet existant.

element0, element1, ..., elementN est une liste de valeurs pour les éléments du tableau. Lorsque cette forme est utilisée, le tableau est initialisé avec les valeurs spécifiées comme éléments, et la propriété length du tableau est positionnée au nombre de paramètres.

longueur est la longueur initiale du tableau. Le code suivant crée un tableau de cinq éléments :

modeDePaiement = new Array(5);

Les déclarations littérales de tableaux sont également des objets Array ; par exemple la déclaration suivante est un objet Array. Consultez Tableaux pour plus de détails sur les déclarations littérales de tableaux.

cafés = ["Arabica", "Expresso", "Cappuccino"];

Remplissage d'un tableau

Il est possible de remplir un tableau en assignant des valeurs à ses éléments. Par exemple,

emp[1] = "Carine Dumas";
emp[2] = "Philippe Legrand";
emp[3] = "Adrien West";

Vous pouvez également remplir un tableau lors de sa création:

monTableau = new Array("Hello", maVariable, 3.14159);

Références aux éléments d'un tableau

On se réfère aux éléments d'un tableau à l'aide des index ordinaux de ces éléments. Par exemple, supposons que vous définissiez le tableau suivant :

monTableau = new Array("Vent", "Pluie", "Feu");

Vous ferez alors référence au premier élément du tableau en appelant monTableau[0] et au second élément en appelant monTableau[1].

Les index des éléments commencent à zéro (0), mais la longueur du tableau (par exemple, monTableau.length) reflète le nombre d'éléments dans le tableau. Cette longueur est obtenue en ajoutant un au plus grand index du tableau.

Méthodes de l'objet Array

L'objet Array dispose des méthodes suivantes :

  • concat fusionne deux tableaux et renvoie un nouveau tableau.
        monTableau = new Array("1", "2", "3");
        monTableau = myArray.concat("a", "b", "c"); // monTableau est maintenant ["1", "2", "3", "a", "b", "c"]
    
  • join(deliminateur = ",") liste tous les éléments d'un tableau dans une chaîne.
        monTableau = new Array("Vent", "Pluie", "Feu");
        liste = monTableau.join(" - "); // liste est "Vent - Pluie - Feu"
    
  • pop retire le dernier élément d'un tableau et renvoie cet élément.
        monTableau = new Array("1", "2", "3");
        dernier = monTableau.pop(); // monTableau devient ["1", "2"], dernier = "3"
    
  • push ajoute un ou plusieurs éléments en fin de tableau et renvoie le dernier élément ajouté.
        monTableau = new Array("1", "2");
        monTableau.push("3"); // monTableau devient ["1", "2", "3"]
    
  • reverse transpose les éléments d'un tableau : le premier élément devient le dernier et le dernier devient le premier.
        monTableau = new Array ("1", "2", "3");
        monTableau.reverse(); // transpose le tableau monTableau en [ "3", "2", "1" ]
    
  • shift retire le premier élément d'un tableau et renvoie cet élément
        monTableau = new Array ("1", "2", "3");
        premier = monTableau.shift(); // monTableau devient ["2", "3"], premier vaut "1"
    
  • slice (start_index, upto_index) extrait une section d'un tableau et renvoie un nouveau tableau.
        monTableau = new Array ("a", "b", "c", "d", "e");
        monTableau = monTableau.slice(1,4); //commence à l'index 1 et extrait tous les éléments jusqu'à 4, renvoie [ "b", "c", "d" ]
    
  • splice(index, nombre_suppr, ajelement1, ajelement2, ...) ajoute et/ou supprime des éléments d'un tableau.
        monTableau = new Array ("1", "2", "3", "4", "5");
        monTableau.splice(1, 3, "a", "b", "c", "d"); // monTableau devient ["1", "a", "b", "c", "d", "5"]
        // le code commence à l'index un (où se trouve "2"), retire trois éléments à cet endroit et insère ensuite les éléments qui suivent à la place
    
  • sort trie les éléments d'un tableau.
        monTableau = new Array("Vent", "Pluie", "Feu");
        monTableau.sort(); // trie le tableau de sorte que monTableau = [ "Feu", "Pluie", "Vent" ]
    

    sort peut également recevoir une fonction de callback pour déterminer la façon dont le contenu du tableau sera trié. La fonction compare les deux valeurs et renvoie une de ces trois valeurs :

    • Si a est inférieur à b selon le système de tri, renvoie -1 (ou n'importe quel nombre négatif)
    • Si a est supérieur à b selon le système de tri, renvoie 1 (ou n'importe quel nombre positif)
    • Si a et b sont considérés comme équivalents, renvoie 0.

    Par exemple, le code suivant triera un tableau par la dernière lettre des éléments :

        var sortFn = function(a,b){
            if (a[a.length - 1] < b[b.length - 1]) return -1;
            if (a[a.length - 1] > b[b.length - 1]) return 1;
            if (a[a.length - 1] == b[b.length - 1]) return 0;
            }
        monTableau.sort(sortFn); // trie le tableau de sorte que monTableau = ["Pluie", "Vent", "Feu"]
    
  • unshift ajoute un ou plusieurs éléments au début d'un tableau et renvoie la nouvelle longueur du tableau.
  • Tableaux bidimensionnels

    Le code suivant crée un tableau bidimensionnel.

    a = new Array(4)
    for (i=0; i < 4; i++) {
       a[i] = new Array(4)
       for (j=0; j < 4; j++) {
          a[i][j] = "["+i+","+j+"]"
       }
    }
    

    Cet exemple crée un tableau contenant les lignes suivantes :

    Ligne 0 : [0,0][0,1][0,2][0,3]
    Ligne 1 : [1,0][1,1][1,2][1,3]
    Ligne 2 : [2,0][2,1][2,2][2,3]
    Ligne 3 : [3,0][3,1][3,2][3,3]
    

    Tableaux et expressions rationnelles

    Lorsqu'un tableau est le résultat d'une correspondance entre une expression régulière et une chaîne, le tableau renvoie des propriétés et des éléments fournissant des informations concernant les correspondances. Les valeurs de retour de RegExp.exec, String.match et String.split sont des tableaux. Pour plus d'informations sur l'utilisations de tableaux avec des expressions rationnelles, consultez Expressions rationnelles.

Étiquettes et contributeurs liés au document

Contributeurs ayant participé à cette page : BenoitL, Meithal, Mgjbot
Dernière mise à jour par : Meithal,