edubun
Français

Les tableaux

Un tableau garde de nombreuses valeurs dans l'ordre sous un seul nom. Dans ["red", "green", "blue"], "red" se trouve à l'indice 0 et la longueur vaut 3.

Une liste dans une seule variable

Imagine un programme qui suit les notes de toute une classe. Trente variables appelées score1, score2, score3 seraient pénibles à manipuler, et impossibles à parcourir avec une boucle. Un tableau est une seule valeur qui contient une liste ordonnée d'autres valeurs. On l'écrit avec des crochets et des virgules :

const fruits = ["apple", "banana", "cherry"];
console.log(fruits.length);   // affiche 3
console.log(fruits[0]);       // apple (premier élément)
console.log(fruits[2]);       // cherry

Chaque valeur d'un tableau est un élément. Les éléments sont numérotés par indice à partir de 0, exactement comme les caractères d'une chaîne. Le premier élément est donc fruits[0] et le dernier fruits[fruits.length - 1]. Demander un indice qui n'existe pas, comme fruits[10], ne provoque pas d'erreur : cela donne undefined. Un tableau peut contenir n'importe quelle sorte de valeur, et les éléments n'ont même pas besoin d'être du même type, même si en pratique ils le sont en général.

Modifier un tableau

Contrairement aux chaînes, les tableaux peuvent être modifiés sur place. Affecte une valeur à un indice pour remplacer un élément : fruits[1] = "blueberry". La méthode push ajoute un élément à la fin et pop retire le dernier et le renvoie. unshift et shift font la même chose au début. Cela fonctionne même quand le tableau a été déclaré avec const. const empêche seulement le nom de désigner un autre tableau ; il ne fige pas le contenu.

const list = ["milk", "eggs"];
list.push("bread");
console.log(list.length);        // affiche 3
const last = list.pop();
console.log(last);               // bread (retiré de la fin)
console.log(list.join(", "));    // milk, eggs

Deux autres méthodes répondent à des questions. includes(x) donne true si x est dans le tableau, et indexOf(x) donne son indice, ou -1 s'il est absent. join(", ") colle tous les éléments en une seule chaîne avec le séparateur donné entre eux : c'est le moyen le plus simple d'afficher proprement une liste.

Parcourir un tableau avec une boucle

Les tableaux et les boucles vont ensemble. Une boucle for avec un indice allant de 0 jusqu'à la longueur exclue visite chaque élément. La boucle for...of est plus courte quand tu n'as besoin que des valeurs, pas de leurs positions :

const scores = [70, 85, 90, 55];

for (let i = 0; i < scores.length; i++) {
  console.log(i, scores[i]);
}

let total = 0;
for (const s of scores) {
  total += s;
}
console.log(total / scores.length);   // affiche 75 (la moyenne)

Remarque la condition i < scores.length, avec < et non <=. Avec quatre éléments, les indices vont de 0 à 3, et utiliser <= ferait lire une case après la fin. Cette erreur de décalage d'un (off-by-one) est l'un des bugs les plus courants de toute la programmation.

Deux noms, un seul tableau

Les nombres et les chaînes sont copiés quand on les affecte à une autre variable, mais pas les tableaux. Après const a = [1, 2]; const b = a;, les deux noms désignent exactement le même tableau : b.push(3) modifie donc aussi ce que l'on voit par a, et a.length vaut maintenant 3. Si tu as besoin d'une copie séparée, écris const b = [...a];, qui répand les éléments de a dans un tout nouveau tableau. Les objets, vus dans l'unité suivante, se comportent de la même façon.

Les zones d'exercice de ce site affichent les tableaux sous une forme compacte, comme ["a","b"] ou [1,2,3]. La console des outils de développement d'un navigateur ajoute des espaces et peut les afficher autrement. Utilise join quand tu veux contrôler exactement l'affichage.

Exemple corrigé. Trouve le plus grand nombre de [4, 17, 9, 12] sans Math.max. Commence par let best = nums[0], parcours le reste, et chaque fois qu'un élément est plus grand que best, range-le dans best. Après la boucle, best vaut 17. La même forme, une variable qui retient le meilleur jusqu'ici, trouve le mot le plus long, le prix le plus bas ou la date la plus ancienne.

tableauUne liste ordonnée de valeurs entre [ ]
élémentUne valeur à l'intérieur d'un tableau
arr[0]Le premier élément
arr[arr.length - 1]Le dernier élément
push / popAjouter à la fin / retirer à la fin
includestrue si la valeur est dans le tableau
joinColler les éléments en une seule chaîne
for...ofParcourir les valeurs d'un tableau
décalage d'un (off-by-one)Aller un pas trop loin ou pas assez, souvent <= au lieu de <
  1. Qu'affiche ce code ?
    const a = [10, 20, 30];
    console.log(a[1]);
  2. Qu'affiche ce code ?
    const a = [10, 20, 30];
    console.log(a.length);
  3. Qu'affiche ce code ?
    const a = ["x", "y", "z"];
    console.log(a[a.length - 1]);
  4. Qu'affiche ce code ?
    const a = [1, 2];
    a.push(3);
    a.push(4);
    console.log(a.length);
  5. Qu'affiche ce code ?
    const a = [5, 6, 7];
    const x = a.pop();
    console.log(x, a.length);
    • 7 2
    • 5 2
    • 7 3
  6. Qu'affiche ce code ?
    const a = ["cat", "dog"];
    console.log(a.indexOf("bird"));
  7. Qu'affiche ce code ?
    const a = ["a", "b", "c"];
    console.log(a.join("-"));
  8. Qu'affiche ce code ?
    const a = [3, 4, 5];
    let t = 0;
    for (const n of a) {
      t += n;
    }
    console.log(t);
  9. Qu'affiche ce code ?
    const a = [1, 2, 3];
    a[0] = 9;
    console.log(a[0] + a[2]);
  10. Qu'affiche ce code ?
    const a = ["red", "green"];
    console.log(typeof a[5]);
    • undefined
    • Une erreur
    • string
  11. Quel en-tête de boucle visite chaque indice de arr exactement une fois ?
    • for (let i = 0; i < arr.length; i++)
    • for (let i = 0; i <= arr.length; i++)
    • for (let i = 1; i <= arr.length; i++)
L'essentiel
  • Les tableaux contiennent des valeurs ordonnées entre [ ] ; les indices commencent à 0.
  • Le dernier élément est arr[arr.length - 1].
  • push et pop ajoutent et retirent à la fin ; le contenu d'un tableau const peut quand même changer.
  • includes, indexOf et join répondent aux questions courantes.
  • Boucle avec i de 0 tant que i < length, ou utilise for...of pour les valeurs.
Sources de ce cours (2)
  • MDN Web Docs, JavaScript Guide (developer.mozilla.org/en-US/docs/Web/JavaScript/Guide, chapters Introduction, Grammar and types, Control flow, Loops and iteration, Functions, Expressions and operators, Numbers and strings, Indexed collections, Working with objects; checked 2026-10-17)
  • Ecma International, ECMA-262 ECMAScript 2026 Language Specification, 17th edition, June 2026 (tc39.es/ecma262 and ecma-international.org/publications-and-standards/standards/ecma-262, checked 2026-10-17)

Consulté le: 2026-10-17