Object.fromEntries()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

Метод Object.fromEntries() преобразует список пар ключ-значение в объект.

Интерактивный пример

const entries = new Map([
  ["foo", "bar"],
  ["baz", 42],
]);

const obj = Object.fromEntries(entries);

console.log(obj);
// Expected output: Object { foo: "bar", baz: 42 }

Синтаксис

Object.fromEntries(iterable);

Параметры

iterable

Итерируемый объект, такой как Array или Map или другие объекты, реализующие iterable протокол.

Возвращаемое значение

Новый объект, свойства которого задаются записями iterable.

Описание

Метод Object.fromEntries() принимает список пар ключ-значение и возвращает новый объект, свойства которого задаются этими записями. Ожидается, что аргумент iterable будет объектом, который реализует метод @@iterator, который возвращает объект итератора, который создаёт двухэлементный массивоподобный объект, первый элемент которого является значением, которое будет использоваться в качестве ключа свойства, а второй элемент — значением связанного с этим ключом свойства.

Object.fromEntries() выполняет процедуру, обратную Object.entries().

Примеры

Преобразование Map в Object

С Object.fromEntries вы можете преобразовать Map в Object:

js
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:

js
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() и методами манипулирования массивами вы можете преобразовывать объекты следующим образом:

js
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 }

Спецификации

Specification
ECMAScript® 2025 Language Specification
# sec-object.fromentries

Совместимость с браузерами

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
fromEntries

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

Смотрите также