Adloun

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

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 →