Object.fromEntries()
Baseline
Weitgehend verfügbar
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Januar 2020 browserübergreifend verfügbar.
Die statische Methode Object.fromEntries() wandelt eine Liste von Schlüssel-Wert-Paaren in ein Objekt um.
Probieren Sie es aus
const entries = new Map([
["foo", "bar"],
["baz", 42],
]);
const obj = Object.fromEntries(entries);
console.log(obj);
// Expected output: Object { foo: "bar", baz: 42 }
Syntax
Object.fromEntries(iterable)
Parameter
iterable-
Ein iterierbares Objekt, beispielsweise ein
Arrayoder eineMap, das eine Liste von Objekten enthält. Jedes dieser Objekte sollte zwei Eigenschaften haben:Üblicherweise wird ein solches Objekt als Array mit zwei Elementen dargestellt: Das erste Element ist der Eigenschaftsschlüssel, das zweite der Eigenschaftswert.
Rückgabewert
Ein neues Objekt, dessen Eigenschaften durch die Einträge des iterierbaren Objekts bestimmt werden.
Beschreibung
Die Methode Object.fromEntries() nimmt eine Liste von Schlüssel-Wert-Paaren entgegen und gibt ein neues Objekt zurück, dessen Eigenschaften durch diese Einträge bestimmt werden. Das Argument iterable muss ein Objekt sein, das eine [Symbol.iterator]()-Methode implementiert. Diese Methode gibt ein Iterator-Objekt zurück, das Array-ähnliche Objekte mit jeweils zwei Elementen liefert. Das erste Element wird als Eigenschaftsschlüssel verwendet, das zweite ist der zugehörige Eigenschaftswert.
Object.fromEntries() bewirkt das Gegenteil von Object.entries(), mit einem Unterschied: Object.entries() gibt nur Eigenschaften mit String-Schlüsseln zurück, während Object.fromEntries() auch Eigenschaften mit Symbol-Schlüsseln erstellen kann.
Hinweis:
Anders als Array.from() verwendet Object.fromEntries() den Wert von this nicht. Wenn Sie die Methode auf einem anderen Konstruktor aufrufen, werden daher keine Objekte dieses Typs erstellt.
Beispiele
>Eine Map in ein Objekt umwandeln
Mit Object.fromEntries können Sie eine Map in ein Object umwandeln:
const map = new Map([
["foo", "bar"],
["baz", 42],
]);
const obj = Object.fromEntries(map);
console.log(obj); // { foo: "bar", baz: 42 }
Ein Array in ein Objekt umwandeln
Mit Object.fromEntries können Sie ein Array in ein Object umwandeln:
const arr = [
["0", "a"],
["1", "b"],
["2", "c"],
];
const obj = Object.fromEntries(arr);
console.log(obj); // { 0: "a", 1: "b", 2: "c" }
Objekte umwandeln
Mit Object.fromEntries, der umgekehrt arbeitenden Methode Object.entries() und Methoden zur Array-Manipulation können Sie Objekte wie folgt umwandeln:
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 }
Spezifikationen
| Spezifikation |
|---|
| ECMAScript® 2027 Language Specification> # sec-object.fromentries> |