JavaScript : rendre le Web interactif (école d'ingénieur) · Chapitre 10 · Exercice de TD
Les rayons
Dialoguer avec un serveur : fetch · niveau 2
Énoncé
À partir de la liste complète des livres reçue du serveur, calculer la liste des rayons, sans doublon et triée dans l'ordre alphabétique français, puis le nombre de livres par rayon (dans une Map). Demander enfin au serveur les seuls livres du rayon « Littérature », en construisant l'adresse avec URL.
Corrigé
const API = "http://localhost:8000/api/livres";
const livres = await obtenirJson(API);
const rayons = [...new Set(livres.map((l) => l.rayon))].sort((a, b) => a.localeCompare(b, "fr"));
console.log(rayons);
const parRayon = new Map();
for (const l of livres) parRayon.set(l.rayon, (parRayon.get(l.rayon) ?? 0) + 1);
console.log(parRayon);
const url = new URL(API);
url.searchParams.set("rayon", "Littérature");
console.log((await obtenirJson(url)).map((l) => l.titre));
[ 'Informatique', 'Littérature', 'Mathématiques', 'Physique' ]
Map(4) {
'Informatique' => 2,
'Mathématiques' => 1,
'Physique' => 1,
'Littérature' => 2
}
[ 'Le Petit Prince', 'L’Étranger' ]
localeCompare avec "fr" range « Littérature » avant « Mathématiques » en tenant compte des accents. La Map garde l'ordre de première apparition des rayons dans la liste du serveur.
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.