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
Proposition pour Object.fromEntries() Brouillon de niveau 3

Compatibilité des navigateurs

Update compatibility data on GitHub
OrdinateurMobileServeur
ChromeEdgeFirefoxInternet ExplorerOperaSafariWebview AndroidChrome pour AndroidEdge MobileFirefox pour AndroidOpera pour AndroidSafari sur iOSSamsung InternetNode.js
Support simpleChrome Aucun support NonEdge Aucun support NonFirefox Support complet 63IE Aucun support NonOpera Aucun support NonSafari Aucun support NonWebView Android Aucun support NonChrome Android Aucun support NonEdge Mobile Aucun support NonFirefox Android Support complet 63Opera Android Aucun support NonSafari iOS Aucun support NonSamsung 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
Dernière mise à jour par : SphinxKnight,