Adloun

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

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 →