Adloun

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

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 →