Перевод не завершен. Пожалуйста, помогите перевести эту статью с английского.

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

Синтаксис

Object.fromEntries(iterable);

Параметры

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

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

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

Описание

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

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

Примеры

Преобразование 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 }

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

Спецификация Статус
Object.fromEntries proposal Stage 3

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

Update compatibility data on GitHub
КомпьютерыМобильныеServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome для AndroidEdge MobileFirefox для AndroidOpera для AndroidSafari on iOSSamsung InternetNode.js
Базовая поддержкаChrome Нет поддержки НетEdge Нет поддержки НетFirefox Полная поддержка 63IE Нет поддержки НетOpera Нет поддержки НетSafari Нет поддержки НетWebView Android Нет поддержки НетChrome Android Нет поддержки НетEdge Mobile Нет поддержки НетFirefox Android Полная поддержка 63Opera Android Нет поддержки НетSafari iOS Нет поддержки НетSamsung Internet Android Нет поддержки Нетnodejs Нет поддержки Нет

Легенда

Полная поддержка  
Полная поддержка
Нет поддержки  
Нет поддержки

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

Метки документа и участники

Внесли вклад в эту страницу: Akh-rman
Обновлялась последний раз: Akh-rman,