Chargement...

Parcourir un tableau

songs contient rain, tide et dusk, et le nombre reste figé sur toute cette page, parce que forEach ne fait que visiter et ne rallonge ni ne raccourcit la liste comme au chapitre d'avant.

La longueur ne bouge pas

Cette fois la marche est un appel de méthode, et l'index peut venir avec, contrairement à for...of qui ne donne que la valeur. Aucun titre n'est ajouté à la fin, et aucun titre n'est retiré de la liste.

La fonction que tu remets

Tu remets une fonction qui tourne une fois par morceau, et la fiche en dessous est le contrat de cette page.

📊 Ce que forEach te donne

Pièce Quand tu l'as Ce n'est pas
premier argument à chaque visite la longueur
deuxième argument seulement si tu le nommes obligatoire
résultat de l'appel quand forEach a fini un nouveau tableau
length ensuite quand tu lis songs.length modifié par la visite

Le morceau est le premier argument et l'index le second, que tu peux omettre.

L'ordre dans la console

Affiche chaque titre. D'abord rain, puis tide, enfin dusk.

Affiche chaque titre

javascript
let songs = ["rain", "tide", "dusk"];
songs.forEach(function (title) {
console.log(title);
});

Trois lignes sortent, de l'avant du tableau vers l'arrière. Les trois chaînes sont encore dans les mêmes cases.

L'index à côté du titre

javascript
let songs = ["rain", "tide", "dusk"];
songs.forEach(function (title, i) {
console.log(i);
console.log(title);
});

Zéro appartient à rain, deux appartient à dusk, et tide est entre les deux, sur un.

L'appel renvoie undefined

javascript
let songs = ["rain", "tide", "dusk"];
let result = songs.forEach(function (title) {
console.log(title);
});
console.log(result);
console.log(songs.length);

Range l'appel dans une variable et affiche-la pour voir undefined, qui n'est ni un titre ni une longueur. L'affichage de length reste 3.

return n'arrête pas la marche

javascript
let songs = ["rain", "tide", "dusk"];
songs.forEach(function (title) {
if (title === "tide") {
return;
}
console.log(title);
});

Si le titre est tide et que tu reviens tout de suite, cette ligne ne s'affiche pas. La marche continue, et dusk sort quand même.

Compte les visites toi-même

javascript
let songs = ["rain", "tide", "dusk"];
let seen = 0;
songs.forEach(function (title) {
seen = seen + 1;
});
console.log(seen);
console.log(songs.length);

Ton compteur tombe sur 3 et length aussi, mais c'est toi qui as tenu la somme, l'appel ne te l'a pas rendue.

Les titres dans le paragraphe

Construis une chaîne avec une espace entre les titres et mets-la dans le paragraphe. Laisse la longueur hors de la ligne.

Démo de page — titres sur une ligne

html
<!DOCTYPE html>
<html>
<head>
<title>array-iteration — page</title>
</head>
<body>
<p id="line">…</p>
<script>
let songs = ["rain", "tide", "dusk"];
let line = "";
songs.forEach(function (title) {
if (line !== "") {
line = line + " ";
}
line = line + title;
});
let box = document.getElementById("line");
box.textContent = line;
</script>
</body>
</html>

La ligne montre les trois titres séparés par une espace, et si tu changes tide en fog puis que tu recharges, le mot du milieu change. La visite couvre toujours trois titres.

Fais la marche

  1. Affiche les trois titres. Vérifie que rain est en premier
  2. Affiche chaque index et vérifie que rain est sur 0
  3. Garde le résultat de l'appel et vois undefined pendant que la longueur reste 3
  4. Reviens tout de suite sur tide et vérifie que dusk s'affiche encore
  5. Ajoute 1 à seen à chaque visite et vérifie que tu obtiens 3
  6. Lis la ligne de la page, passe tide à fog et recharge

Facile à mal lire

  • N'attends pas que l'appel rende le dernier titre. Ce qui revient n'est pas un morceau
  • N'attends pas que l'appel rende la longueur
  • N'écris pas break dans la fonction, c'est une erreur de syntaxe
  • Ne crois pas que return après tide bloque aussi dusk
  • Ne lis pas le second paramètre comme le titre
  • Ne cherche pas une valeur sur cette page

Tu repars avec ça

  • forEach visite chaque élément de l'avant vers l'arrière, et le premier paramètre est l'élément
  • Le second paramètre est l'index
  • Le résultat de l'appel lui-même est undefined
  • return dans la fonction saute seulement cette visite
  • La page suivante cherche selon la valeur

🧠 Testez Vos Connaissances

Prêt à Commencer

Testez Vos Connaissances

Mettez-vous au défi avec ce quiz interactif et voyez à quel point vous comprenez le sujet

❓
8
Questions
🎯
70%
Pour Réussir
♾️
∞
Temps
🔄
∞
Tentatives

📝 Instructions

  • Lisez chaque question attentivement
  • Sélectionnez la meilleure réponse pour chaque question
  • Vous pouvez refaire le quiz autant de fois que vous le souhaitez
  • Votre progression sera affichée en haut