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
Object.fromEntries(iterable)
Paramètres
iterable-
Un itérable, tel qu'un
Arrayou uneMap, 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 :
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 :
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 :
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
- La prothèse d'émulation de
Object.fromEntriesdanscore-js(angl.) - La prothèse d'émulation es-shims de
Object.fromEntries(angl.) - La méthode statique
Object.entries() - La méthode statique
Object.keys() - La méthode statique
Object.values() - La méthode
Object.prototype.propertyIsEnumerable() - La méthode statique
Object.create() - La méthode
Map.prototype.entries() - La méthode
Map.prototype.keys() - La méthode
Map.prototype.values()