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.