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() преобразует список пар ключ-значение в объект.

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

Синтаксис

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 Language Specification
# sec-object.fromentries

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

BCD tables only load in the browser

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