Passer au contenu principal
eLearner.app
Module 3 · Leçon 4 sur 412/32 dans le cours~10 min
Leçons du module (4/4)

Itérer sur des collections

Manipuler des collections signifie presque toujours itérer : parcourir les éléments un par un et effectuer une action pour chacun d'eux. Dans cette leçon, nous découvrons les syntaxes de base ; dans le module sur les tableaux fonctionnels (map / filter / reduce), nous apprendrons à écrire ces opérations de manière plus déclarative.

for…of pour les tableaux

C'est la boucle que tu voudras utiliser presque tout le temps pour parcourir un tableau : elle extrait la valeur à chaque étape.

JS
const colori = ['rosso', 'verde', 'blu'];

for (const c of colori) {
  console.log(c);
}
// 'rosso'
// 'verde'
// 'blu'

Si tu as également besoin de l'index, utilise entries() :

JS
for (const [i, c] of colori.entries()) {
  console.log(`${i}: ${c}`);
}
// '0: rosso', '1: verde', '2: blu'

for…in pour les objets — avec précaution

for…in parcourt les clés (chaînes de caractères) d'un objet :

JS
const utente = { nome: 'Anna', eta: 28 };
for (const k in utente) {
  console.log(`${k} = ${utente[k]}`);
}

Object.keys / values / entries

C'est la méthode robuste pour parcourir un objet. Elles renvoient des tableaux, et se combinent donc parfaitement avec for…of :

JS
const utente = { nome: 'Anna', eta: 28 };

Object.keys(utente); // ['nome', 'eta']
Object.values(utente); // ['Anna', 28]
Object.entries(utente); // [['nome', 'Anna'], ['eta', 28]]

for (const [k, v] of Object.entries(utente)) {
  console.log(`${k} → ${v}`);
}

for classique

Le for "à l'ancienne" existe toujours. Tu l'utiliseras rarement, mais il s'avère utile lorsque tu as besoin d'un contrôle précis sur l'index (sauter des éléments, itérer en sens inverse) :

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

// Al contrario
for (let i = colori.length - 1; i >= 0; i--) {
  console.log(colori[i]);
}

À toi de jouer

Exercice#js.m3.l4.e1
Tentatives : 0Chargement…

Étant donné `numbers = [3, 5, 7]`, calcule la somme de tous les éléments (15) en itérant avec for...of. La dernière expression doit s'évaluer à cette somme.

Chargement de l'éditeur…
Afficher l'indice

for (const n of numbers) { sum = sum + n; }

Solution disponible après 3 tentatives

Exercice de révision

Exercice#js.m3.l4.e2
Tentatives : 0Chargement…

Étant donné `prices = { mela: 0.4, pera: 0.55, banana: 0.3 }`, renvoie le NOMBRE TOTAL d'entrées de l'objet (3) en utilisant Object.keys.

Chargement de l'éditeur…
Afficher l'indice

Object.keys(obj) renvoie un tableau ; .length indique le nombre de clés présentes.

Solution disponible après 3 tentatives