Object.fromEntries()
Статичний метод Object.fromEntries() ("із записів") перетворює список пар ключ-значення на об'єкт.
Спробуйте його в дії
Синтаксис
Object.fromEntries(iterable)
Параметри
iterableІтерований об'єкт, як от
масивчиMap, який містить певний перелік об'єктів. Кожний такий об'єкт мусить містити дві властивості:0Рядок або символ, що представляє ключ властивості.
1Значення властивості.
Типово, цей об'єкт реалізовують як масив із двох елементів, де перший елемент є ключем властивості, а другий — її значенням.
Повернене значення
Новий об'єкт, чиї властивості було надано в елементах переданого ітерованого об'єкта.
Опис
Метод Object.fromEntries() приймає список пар ключ-значення, і повертає новий об'єкт, чиї властивості було надано в елементах цього списку. Очікується, що аргумент iterable буде об'єктом, який реалізує метод [Symbol.iterator](). Цей метод повертає об'єкт-ітератор, що продукує масивоподібні об'єкти з двома елементами. Перший елемент — це значення, яке буде використано як ключ властивості, а другий — це значення властивості, яке буде асоційовано з цим ключем.
Метод Object.fromEntries() виконує зворотну від Object.entries() операцію, за винятком того, що Object.entries() повертає лише властивості з рядковими ключами, а Object.fromEntries() може також створювати властивості з символьними ключами.
Примітка: На відміну від
Array.from(),Object.fromEntries()не використовує значенняthis, тому виклик його з іншим конструктором не створить об'єкти іншого типу.
Приклади
Конвертація відображення (Map) у звичайний Object
За допомогою Object.fromEntries можна перетворити Map на Object:
const map = new Map([
["foo", "bar"],
["baz", 42],
]);
const obj = Object.fromEntries(map);
console.log(obj); // { foo: "bar", baz: 42 }
Конвертація масиву (Array) у звичайний Object
За допомогою Object.fromEntries можна перетворити Array на Object:
const arr = [
["0", "a"],
["1", "b"],
["2", "c"],
];
const obj = Object.fromEntries(arr);
console.log(obj); // { 0: "a", 1: "b", 2: "c" }
Перетворення об'єктів
За допомогою Object.fromEntries, а також зворотного йому методу Object.entries() і методів для маніпуляції масивом можна виконувати такі трансформації, як:
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 }
Специфікації
Сумісність із браузерами
| desktop | mobile | server | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
fromEntries
|
Chrome Full support 73 | Edge Full support 79 | Firefox Full support 63 | Internet Explorer No support Ні | Opera Full support 60 | Safari Full support 12.1 | WebView Android Full support 73 | Chrome Android Full support 73 | Firefox for Android Full support 63 | Opera Android No support Ні | Safari on iOS Full support 12.2 | Samsung Internet Full support 11.0 | Deno Full support 1.0 | Node.js Full support 12.0.0 |