Object.fromEntries()

Статичний метод Object.fromEntries() ("із записів") перетворює список пар ключ-значення на об'єкт.

Спробуйте його в дії

Синтаксис

Object.fromEntries(iterable)

Параметри

iterable

Ітерований об'єкт, як от масив чи Map, який містить певний перелік об'єктів. Кожний такий об'єкт мусить містити дві властивості:

0

Рядок або символ, що представляє ключ властивості.

1

Значення властивості.

Типово, цей об'єкт реалізовують як масив із двох елементів, де перший елемент є ключем властивості, а другий — її значенням.

Повернене значення

Новий об'єкт, чиї властивості було надано в елементах переданого ітерованого об'єкта.

Опис

Метод Object.fromEntries() приймає список пар ключ-значення, і повертає новий об'єкт, чиї властивості було надано в елементах цього списку. Очікується, що аргумент iterable буде об'єктом, який реалізує метод @@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
Chrome Edge Firefox Internet Explorer Opera Safari WebView Android Chrome Android Firefox for Android Opera Android Safari on iOS Samsung Internet Deno Node.js
fromEntries
Chrome Full support 73
Edge Full support 79
Firefox Full support 63
Internet Explorer No support No
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 No
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

Дивіться також