JavaScript : rendre le Web interactif (école d'ingénieur) · Chapitre 5 · Exercice de TD
Mots les plus fréquents
Tableaux et objets · niveau 2
Énoncé
À partir du tableau de titres
const titres = ["Analyse MPSI", "Algèbre MPSI", "Physique MPSI", "Analyse PC"];
construire une Map qui associe à chaque mot son nombre d'apparitions, puis trouver le mot le plus fréquent avec reduce. Pourquoi une Map plutôt qu'un objet littéral ?
Corrigé
const titres = ["Analyse MPSI", "Algèbre MPSI", "Physique MPSI", "Analyse PC"];
const frequences = new Map();
for (const titre of titres) {
for (const mot of titre.split(" ")) {
frequences.set(mot, (frequences.get(mot) ?? 0) + 1);
}
}
console.log(frequences);
const plusFrequent = [...frequences].reduce((meilleur, paire) => (paire[1] > meilleur[1] ? paire : meilleur));
console.log(plusFrequent);
Map(5) {
'Analyse' => 2,
'MPSI' => 3,
'Algèbre' => 1,
'Physique' => 1,
'PC' => 1
}
[ 'MPSI', 3 ]
frequences.get(mot) ?? 0 vaut 0 pour un mot pas encore vu. [...frequences] donne les paires [mot, nombre]. Une Map n'a pas de propriétés héritées : avec un objet littéral, un mot comme constructor trouverait déjà une valeur (({}).constructor existe), et le comptage serait faux.
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.