JavaScript : rendre le Web interactif (école d'ingénieur) · Chapitre 5 · Application directe du cours
Trier le catalogue
Tableaux et objets · niveau 2
Énoncé
- Trier un tableau de livres
{ titre, prix }par prix décroissant, et, à prix égal, par titre dans l'ordre du dictionnaire, sans modifier le tableau d'origine. - Qu'affiche
console.log([10, 9, 100].sort())? Expliquer, puis corriger.
Corrigé
const livres = [
{ titre: "Analyse MPSI", prix: 45 },
{ titre: "Physique générale", prix: 59 },
{ titre: "Algèbre MPSI", prix: 45 },
{ titre: "Le Petit Prince", prix: 8.5 },
];
const tries = livres.toSorted((a, b) => b.prix - a.prix || a.titre.localeCompare(b.titre, "fr"));
console.log(tries.map((l) => `${l.prix} ${l.titre}`));
console.log([10, 9, 100].sort());
console.log([10, 9, 100].sort((a, b) => a - b));
[
'59 Physique générale',
'45 Algèbre MPSI',
'45 Analyse MPSI',
'8.5 Le Petit Prince'
]
[ 10, 100, 9 ]
[ 9, 10, 100 ]
b.prix - a.prix classe les prix par ordre décroissant ; à prix égal, cette différence vaut 0 et || passe à localeCompare. toSorted laisse livres intact. Sans comparateur, sort compare les chaînes "10", "9", "100" : "10" est un préfixe de "100", donc avant, et "1" précède "9".
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.