Parcours
/
JavaScript
JavaScript
/
Exercices
/
Les enchantements itératifs d'Elyse
Les enchantements itératifs d'Elyse

Les enchantements itératifs d'Elyse

Exercice d'apprentissage

Introduction

Quand on travaille avec des tableaux, on veut parfois exécuter du code pour chaque valeur du tableau. C'est ce qu'on appelle itérer sur le tableau, ou le parcourir.

Ici, on va s'intéresser au cas où tu ne veux pas modifier le tableau au passage. Pour transformer des tableaux, consulte plutôt le concept Transformations de tableaux.

La boucle for

La façon la plus simple d'itérer sur un tableau est d'utiliser une boucle for ; voir le concept Boucles for.

const numbers = [6.0221515, 10, 23];

for (let i = 0; i < numbers.length; i++) {
  console.log(numbers[i]);
}
// => 6.0221515
// => 10
// => 23

La boucle for...of

Quand tu veux travailler directement avec la valeur à chaque itération et que tu n'as pas besoin de l'indice du tout, tu peux utiliser une boucle for...of.

for...of fonctionne comme la boucle for de base montrée plus haut, mais au lieu de devoir gérer l'indice comme variable de la boucle, c'est la valeur qui t'est fournie directement.

const numbers = [6.0221515, 10, 23];

// Because re-assigning number inside the loop will be very
// confusing, disallowing that via const is preferable.
for (const number of numbers) {
  console.log(number);
}
// => 6.0221515
// => 10
// => 23

Tout comme dans les boucles for classiques, tu peux utiliser continue pour arrêter l'itération en cours et break pour arrêter complètement l'exécution de la boucle.

La méthode forEach

Chaque tableau possède une méthode forEach qui permet de parcourir ses éléments.

forEach prend une fonction de rappel en paramètre. La fonction de rappel est appelée une fois pour chaque élément du tableau. L'élément courant, son indice et le tableau complet sont passés à la fonction de rappel en arguments. Souvent, seuls l'élément courant ou l'indice sont utilisés.

const numbers = [6.0221515, 10, 23];

numbers.forEach((number, index) => console.log(number, index));
// => 6.0221515 0
// => 10 1
// => 23 2

Il n'y a aucun moyen d'arrêter l'itération une fois que la boucle forEach a commencé. Les instructions break et continue n'existent pas dans ce contexte.

Instructions

Elyse est une magicienne en herbe et elle a besoin d'analyser son jeu de cartes de bien des façons. Pour que les choses restent simples, elle n'utilise que des cartes dont les valeurs vont de 1 à 10.

1. Détermine combien de cartes d'un certain type se trouvent dans le jeu

Elyse veut savoir combien de cartes d'un type particulier elle a dans son jeu.

Écris une fonction cardTypeCheck qui prend deux paramètres : un tableau de cartes (le jeu d'Elyse) et le type de carte à compter.

Note

La fonction doit utiliser forEach et renvoyer le nombre de cartes du type indiqué dans le jeu.

const cardType = 3;
cardTypeCheck([1, 2, 3, 4], cardType);
// => 1

2. Détermine combien de cartes impaires ou paires il y a

Pour un autre tour, Elyse a besoin de savoir combien de cartes impaires ou paires se trouvent dans son jeu.

Implémente une fonction determineOddEvenCards qui prend deux paramètres : un tableau de cartes (le jeu d'Elyse) et un booléen (true correspond à « pair » et false à « impair »).

Cette fonction doit renvoyer un seul nombre : le nombre de cartes impaires ou paires présentes dans le jeu (selon la valeur du second argument).

Note

Pour t'entraîner, utilise cette fois une boucle for...of dans l'implémentation de la fonction.

determineOddEvenCards([1, 2, 3, 1, 5, 6], true);
// => 2

determineOddEvenCards([1, 2, 3, 1, 5, 6], false);
// => 4
Modifie via GitHub Le lien s'ouvre dans une nouvelle fenêtre ou un nouvel onglet
JavaScript Exercism

Prêt à commencer Les enchantements itératifs d'Elyse ?

Inscris-toi sur Exercism pour apprendre et maîtriser JavaScript avec 37 concepts159 exercices, et un vrai mentorat humain, le tout gratuitement.