La méthode Object.fromEntries() permet de transformer une liste de paires de clés/valeurs en un objet.

Syntaxe

Object.fromEntries(iterable);

Paramètres

iterable
Un itérable tel qu'un tableau (Array) ou une Map ou tout autre objet qui implémente le protocole itérable.

Valeur de retour

Un nouvel objet dont les propriétés sont fournies par les éléments de l'itérable.

Description

La méthode Object.fromEntries() prend comme argument une liste de paires de clés-valeurs et renvoie un nouvel objet dont les propriétés sont fournies par ces clés-valeurs. L'argument iterable doit implémenter une méthode @@iterator qui renvoie un itérateur produisant un objet semblable à un tableau avec deux éléments ; le premier élément est une valeur qui sera utilisée comme clé de la propriété et le second élément sera utilisé comme valeur associée à cette clé.

Object.fromEntries() est la fonction inverse de Object.entries().

Exemples

Convertir une Map en un Object

Grâce à Object.fromEntries, on peut convertir des objets Map en Object :

const map = new Map([ ['toto', 'truc'], ['machin', 42] ]);
const obj = Object.fromEntries(map);
console.log(obj); // { toto: "truc", machin: 42 }

Convertir un Array en un Object

Grâce à Object.fromEntries, on peut convertir des objets Array en Object :

const arr = [ ['0', 'a'], ['1', 'b'], ['2', 'c'] ];
const obj = Object.fromEntries(arr);
console.log(obj); // { 0: "a", 1: "b", 2: "c" }

Transformer des objets

Avec Object.fromEntries et la méthode réciproque Object.entries(), et les méthodes de manipulation de tableaux, on peut transformer des objets :

const object1 = { a: 1, b: 2, c: 3 };

const object2 = Object.fromEntries(
  Object.entries(object1)
  .map(([ key, val ]) => [ key, val * 2 ])
);

console.log(object2);
// { a: 2, b: 4, c: 6 }

Spécifications

Spécification État Commentaires
Proposition pour Object.fromEntries() Proposition de niveau 4 (finalisée)  

Compatibilité des navigateurs

Update compatibility data on GitHub
OrdinateurMobileServeur
ChromeEdgeFirefoxInternet ExplorerOperaSafariWebview AndroidChrome pour AndroidEdge MobileFirefox pour AndroidOpera pour AndroidSafari sur iOSSamsung InternetNode.js
fromEntriesChrome Support complet 73Edge Aucun support NonFirefox Support complet 63IE Aucun support NonOpera Aucun support NonSafari Support complet 12.1WebView Android Support complet 73Chrome Android Support complet 73Edge Mobile Aucun support NonFirefox Android Support complet 63Opera Android Aucun support NonSafari iOS Support complet 12.2Samsung Internet Android Aucun support Nonnodejs Aucun support Non

Légende

Support complet  
Support complet
Aucun support  
Aucun support

Voir aussi

Étiquettes et contributeurs liés au document

Contributeurs à cette page : SphinxKnight, mdnwebdocs-bot
Dernière mise à jour par : SphinxKnight,