4.14 Exercice: Les propriétés d'un objet

Voici un autre exercice simple. Votre travail consiste à créer une fonction appelée afficherProprietes qui reçoit un objet en paramètre et affiche toutes ses propriétés dont la valeur est de type chaîne de caractères. Le but est de filtrer un objet pour ne garder que les champs textuels, en ignorant les nombres, booléens ou autres types.

Exemple de départ

Pour illustrer, on définit en haut du fichier un objet film avec la syntaxe littérale. On y ajoute la propriété title initialisée à la chaîne "Titanic", la propriété releaseYear fixée à 1997, une propriété rating de type number valant 4,5, et enfin director initialisée à la chaîne "James". Quand on appelle afficherProprietes(film), on doit obtenir uniquement les propriétés de type chaîne : le titre et le réalisateur. Mettez la vidéo en pause, faites l'exercice, puis revenez pour la correction.

Correction

Pour parcourir les propriétés d'un objet, on utilise la boucle for...in. À chaque itération, la variable key contient le nom d'une propriété. Un simple console.log(key) affiche d'abord "title", puis "releaseYear", etc. Pour récupérer la valeur, on utilise la notation entre crochets : obj[key]. On vérifie ensuite son type avec l'opérateur typeof et on l'enveloppe dans un if.

function afficherProprietes(obj) {
  for (let key in obj)
    if (typeof obj[key] === 'string')
      console.log(key, obj[key]);
}

En sauvegardant, on obtient uniquement les propriétés title et director. Notez que les accolades autour du if et du for sont omises : chacune de ces structures ne contient qu'une seule instruction enfant, donc les accolades ne sont pas nécessaires. Voilà pour cet exercice sur les propriétés d'un objet. On se retrouve pour la prochaine démonstration.

En résumé

Cet exercice enseigne comment créer une fonction qui parcourt et affiche les propriétés d'un objet JavaScript en filtrant par type. On utilise la boucle for...in pour itérer sur chaque propriété, la notation entre crochets pour accéder à sa valeur, et l'opérateur typeof pour vérifier qu'elle est de type chaîne avant de l'afficher.

Points clés

  • La boucle for...in parcourt toutes les propriétés d'un objet, chaque itération stockant le nom de la propriété
  • La notation entre crochets (objet[clé]) permet d'accéder à la valeur associée à une propriété
  • L'opérateur typeof vérifie le type d'une valeur et permet de filtrer l'affichage (ex: typeof === 'string')
  • Une condition if permet de n'afficher que les propriétés correspondant à un critère de type
  • Les accolades sont optionnelles après un if ou une boucle s'il n'y a qu'une seule instruction dans le bloc

Questions fréquentes

Comment parcourir toutes les propriétés d'un objet ?

On utilise la boucle for...in. Chaque itération reçoit le nom (clé) de la propriété dans une variable : for (let clé in objet) { ... }

Pourquoi utiliser typeof dans cet exercice ?

typeof permet de vérifier le type de chaque propriété. Ici, on l'utilise pour afficher uniquement les propriétés de type string, en ignorant les nombres et autres types.

Quand peut-on omettre les accolades après un if ?

On peut les omettre s'il n'y a qu'une seule instruction dans le bloc if. Si le bloc contient plusieurs instructions, les accolades deviennent obligatoires.