Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

Object : méthode statique fromEntries()

Baseline Large disponibilité

Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis janvier 2020.

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

Exemple interactif

const entries = new Map([
  ["toto", "truc"],
  ["tata", 42],
]);

const obj = Object.fromEntries(entries);

console.log(obj);
// Résultat attendu : Object { toto: "truc", tata: 42 }

Syntaxe

js
Object.fromEntries(iterable)

Paramètres

iterable

Un itérable, tel qu'un Array ou une Map, contenant une liste d'objets. Chaque objet doit avoir deux propriétés :

0

Une chaîne de caractères ou un symbole représentant la clé de la propriété.

1

La valeur de la propriété.

En général, cet objet est implémenté sous la forme d'un tableau à deux éléments, le premier élément étant la clé de la propriété et le second élément étant la valeur de la propriété.

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 une liste de paires clé-valeur et retourne un nouvel objet dont les propriétés sont définies par ces entrées. L'argument iterable doit être un objet implémentant la méthode [Symbol.iterator](). Cette méthode retourne un objet itérateur qui produit des objets de type tableau à deux éléments. Le premier élément est une valeur qui est utilisée comme clé de propriété, et le second élément est la valeur à associer à cette clé de propriété.

Object.fromEntries() effectue l'opération inverse de Object.entries(), à la différence que Object.entries() ne retourne que des propriétés dont la clé est une chaîne de caractères, tandis que Object.fromEntries() peut également créer des propriétés dont la clé est un symbole.

Note : Contrairement à Array.from(), Object.fromEntries() n'utilise pas la valeur de this, par conséquent, l'appeler sur un autre constructeur ne crée pas d'objets de ce type.

Exemples

Convertir une Map en un Object

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

js
const tab_assoc = new Map([
  ["toto", "truc"],
  ["machin", 42],
]);
const obj = Object.fromEntries(tab_assoc);
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 :

js
const tab = [
  ["0", "a"],
  ["1", "b"],
  ["2", "c"],
];
const obj = Object.fromEntries(tab);
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 :

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

const objet2 = Object.fromEntries(
  Object.entries(objet1).map(([cle, val]) => [cle, val * 2]),
);

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

Spécifications

Spécification
ECMAScript® 2027 Language Specification
# sec-object.fromentries

Compatibilité des navigateurs

Voir aussi