JavaScript : rendre le Web interactif (école d'ingénieur) · Chapitre 12 · Application directe du cours
Les disponibles d'abord
Projet : la Librairie interactive · niveau 1 (application)
Énoncé
Ajouter au catalogue un tri « Disponibilité » : les livres en stock d'abord, puis les épuisés ; à disponibilité égale, l'ordre des titres. Écrire le comparateur, et le test qui le vérifie.
Corrigé
export const parDisponibilite = (a, b) =>
Number(b.stock > 0) - Number(a.stock > 0) || a.titre.localeCompare(b.titre, "fr");
Number(b.stock > 0) - Number(a.stock > 0) vaut si seul a est disponible (a passe devant), dans le cas inverse, et si les deux sont dans le même cas ; ce 0 est « faux », et || passe alors à la comparaison des titres. Il reste à ajouter l'entrée disponibilite: parDisponibilite à COMPARATEURS et l'option correspondante au <select>. Le test (exercices/exercices.test.js) vérifie l'ordre obtenu sur cinq livres, dont « Physique générale », épuisé, qui passe en dernier :
test("12.1 — disponibles d'abord, puis par titre", () => {
assert.deepEqual(livres.toSorted(parDisponibilite).map((l) => l.titre),
["Analyse MPSI", "L’Étranger", "Le Petit Prince", "Programmation Java", "Physique générale"]);
});100 % gratuit
La suite du chapitre est sur Adloun
- 9 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.