JavaScript Object.keys, Values, Entries

Dans ce chapitre, nous allons couvrir Object.keys, values, et entries. Nous avons déjà parlé des méthodes telles que map.keys(), map.values(), map.entries().

Ces méthodes sont universelles et sont utilisées pour les structures de données. Chaque fois après avoir créé une structure de données, elles devraient également être mises en œuvre. Elles sont principalement utilisées pour Map, Set, et Array.

Des méthodes similaires sont prises en charge par les objets plats, également. Seule la syntaxe diffère un peu.

Définition de Object.keys, values, et entries

En règle générale, pour les objets plats, vous pouvez utiliser les méthodes ci-dessous:

  • Pour renvoyer un tableau de clé, la méthode Object.keys(obj) est utilisée.
  • Pour renvoyer un tableau de valeurs, la méthode Object.values(obj) est utilisée.
  • Pour renvoyer un tableau de paires [key, value], la méthode Object.entries(obj) est utilisée.

Il y a des différences significatives par rapport à Map. Ici, nous les couvrirons également.

La première distinction est qu'ici nous devons appeler Object.keys(obj) mais pas obj.keys().

La raison principale est la polyvalence. Les objets sont considérés comme la racine de toutes les structures complexes JavaScript.

Ainsi, avoir un objet tel que data, qui peut exécuter sa propre méthode data.values(). Cependant, vous pouvez appeler Object.values(data) sur cet objet, également. Une autre différence essentielle est que les méthodes Object.* peuvent renvoyer de véritables tableaux, pas des itérables.

Considerons l'exemple suivant:

Javascript object
let user = { name: "Jane", age: 41 }; console.log(user.name); // Jane console.log(user.age); // 41

Donc, dans l'exemple ci-dessus, nous avons ce qui suit:

  • Object.keys(user) = ["name", "age"]
  • Object.values(user) = ["Jack", 35]
  • Object.entries(user) = [ ["name","Jack"], ["age",35] ]

Pour parcourir les valeurs des propriétés, vous pouvez utiliser Object.values de cette manière:

Javascript object values
let user = { name: "Jane", age: 41 }; for (let value of Object.values(user)) { console.log(value); // Jane, then 41 }

Les méthodes Object.keys/values/entries ont une similitude avec for..in loop: les deux ignorent les propriétés qui appliquent Symbol(...) comme clé.

Dans des circonstances où vous avez besoin de symboles, vous pouvez utiliser une méthode distincte Object.getOwnPropertySymbols, renvoyant un tableau composé uniquement de clés symboliques.

Transformation des Objets

En général, les objets ne disposent pas des méthodes que possèdent les tableaux (par exemple, filter, map, etc.).

Si vous souhaitez les utiliser, vous pouvez appliquer la méthode Object.entries, suivie de Object.fromEntries.

Voici la séquence d'actions:

  1. Appliquer Object.entries(obj) pour obtenir un tableau de paires valeur/clé à partir de obj.
  2. Appliquer les méthodes de tableau sur le tableau.
  3. Appliquer Object.fromEntries(array) sur le tableau résultant pour le reconvertir en objet.

Voici un exemple:

Javascript object entries method
let points = { john: 22, ann: 20, jack: 14, }; let doublePoints = Object.fromEntries( // convert to array, map, and then fromEntries returns an object Object.entries(points).map(([key, value]) => [key, value * 2]) ); console.log(doublePoints.john); // 44

Ce moyen permet de faire des transformations robustes.

Heure du Quiz : Testez Vos Compétences!

Prêt à relever le défi de ce que vous avez appris ? Plongez dans nos quiz interactifs pour approfondir votre compréhension et renforcer vos connaissances de manière ludique.

Trouvez-vous cela utile?