Adloun

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

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 →