Cette fonction est expérimentale
Puisque cette fonction est toujours en développement dans certains navigateurs, veuillez consulter le tableau de compatibilité pour les préfixes à utiliser selon les navigateurs.
Il convient de noter qu'une fonctionnalité expérimentale peut voir sa syntaxe ou son comportement modifié dans le futur en fonction des évolutions de la spécification.
La méthode Object.entries()
renvoie un tableau des propriétés propres énumérables d'un objet sous la forme de paires [clé, valeur]
, dans le même ordre qu'une boucle for...in
(la boucle for-in
est différente car elle parcourt la chaîne des prototypes).
Syntaxe
Object.entries(obj)
Paramètres
obj
- L'objet dont on souhaite connaître les propriétés propres énumérables sous la forme de paires
[clé, valeur]
.
Valeur de retour
Un tableau qui contient les propriétés énumérables propres de l'objet sous la forme de paires [clé, valeur]
.
Description
Object.entries()
renvoie un tableau dont les éléments sont des paires (des tableaux à deux éléments) [clé, valeur]
qui correspondent aux propriétés énumérables qui sont directement présentes sur l'objet passé en argument. L'ordre du tableau est le même que celui utilisé lorsqu'on parcourt les valeurs manuellement.
Exemples
var obj = { toto: "truc", machin: 42 }; console.log(Object.entries(obj)); // [ ['toto', 'truc'], ['machin', 42] ] // Un objet semblable à un tableau var obj = { 0: 'a', 1: 'b', 2: 'c' }; console.log(Object.entries(obj)); // [ ['0', 'a'], ['1', 'b'], ['2', 'c'] ] // Un objet semblable à un tableau // dont les clés sont aléatoirement ordonnées var un_obj = { 100: 'a', 2: 'b', 7: 'c' }; console.log(Object.entries(un_obj)); // [ ['2', 'b'], ['7', 'c'], ['100', 'a'] ] // getToto est une propriété non énumérable var mon_obj = Object.create({}, { getToto: { value: function() { return this.toto; } } }); mon_obj.toto = "truc"; console.log(Object.entries(mon_obj)); // [ ['toto', 'truc'] ] // un argument de type primitif sera // converti en un objet console.log(Object.entries("toto")); // [ ['0', 't'], ['1', 'o'], ['2', 't'], ['3', 'o'] ]
Convertir un objet en Map
Le constructeur new Map()
accepte un argument itérable pour décrire les entrées du tableau associatif. Grâce à Object.entries
, il est possible de convertir simplement un objet Object
en un objet Map
:
var obj = { toto: "truc", machin: 42 }; var map = new Map(Object.entries(obj)); console.log(map); // Map { toto: "truc", machin: 42 }
Prothèse d'émulation (polyfill)
Afin d'ajouter le support pour Object.entries
dans des environnements plus anciens qui ne supportent pas la méthode nativement, vous pouvez utiliser une prothèse comme celle proposée sur le dépôt tc39/proposal-object-values-entries ou sur le dépôt es-shims/Object.entries.
Spécifications
Spécification | État | Commentaires |
---|---|---|
ECMAScript 2017 Draft (ECMA-262) La définition de 'Object.entries' dans cette spécification. |
Projet | Définition initiale. |
Compatibilité des navigateurs
Fonctionnalité | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Support simple | 51.0 [1] | 47 (47) | Pas de support | Pas de support | Pas de support [2] |
Fonctionnalité | Android | Chrome pour Android | Webview Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|---|
Support simple | Pas de support | 51.0 [1] | 51.0 [1] | 47.0 (47) | Pas de support | Pas de support | Pas de support |
[1] Peut être activé sous chrome://flags
.
[2] Voir le bug 150131.