Adloun

JavaScript : rendre le Web interactif (école d'ingénieur) · Chapitre 4 · Exercice de TD

Enchaîner des étapes

Portée, fermetures et this · niveau 2

Énoncé

Généraliser composer : écrire enchainer(...etapes), qui renvoie une fonction appliquant les étapes dans l'ordre. Construire avec elle la fonction qui, d'un prix hors taxe en centimes, applique une remise de 10 %, la TVA de 5,5 %, arrondit au centime et écrit le résultat en euros avec deux décimales. Que renvoie enchainer()(42) ?

Corrigé


function enchainer(...etapes) {
  return (valeur) => {
    let resultat = valeur;
    for (const etape of etapes) {
      resultat = etape(resultat);
    }
    return resultat;
  };
}

const prixAffiche = enchainer(
  (p) => p * 0.9,
  (p) => p * 1.055,
  Math.round,
  (p) => `${(p / 100).toFixed(2)} €`,
);
console.log(prixAffiche(3000));
console.log(enchainer()(42));

28.49 €
42

, puis , arrondi à 2849 centimes. Math.round est passé tel quel : c'est une fonction à un argument. Sans étape, la fonction renvoie sa valeur inchangée : 42.

100 % gratuit

La suite du chapitre est sur Adloun

Exercice suivant et tuteur

Sans compte : le cours et le premier QCM. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.

Le cours du chapitre · Tous les exercices du chapitre

Exercice suivant et tuteur →