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 |