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
- 10 autres exercices corrigés dans ce chapitre
- Les 2 QCM du chapitre, le premier sans compte
- Le tuteur, qui guide pas à pas sans donner la réponse
Sans compte : le cours et le premier QCM. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.