Object.fromEntries()
Базовая версия Широко доступна
Эта функция хорошо зарекомендовала себя и работает на множестве устройств и версий браузеров. Она доступна во всех браузерах с июля 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 - Итерируемый объект (iterable), такой как
ArrayилиMap, содержащий список объектов. Каждый объект должен иметь два свойства:-
0 - Строка или символ, представляющие ключ свойства.
-
1 - Значение свойства.
Обычно этот объект реализован как массив из двух элементов, где первый элемент является ключом свойства, а второй — значением свойства.
-
Возвращаемое значение
Новый объект, свойства которого определяются элементами (entries) итерируемого объекта.
Описание
Метод Object.fromEntries() принимает список пар ключ-значение и возвращает новый объект, свойства которого определяются этими элементами. Ожидается, что аргумент iterable является объектом, реализующим метод [Symbol.iterator](). Метод возвращает объект-итератор, который генерирует массивоподобные объекты из двух элементов. Первый элемент — это значение, которое будет использоваться как ключ свойства, а второй элемент — это значение, которое будет ассоциировано с этим ключом свойства.
Object.fromEntries() выполняет обратное действие по отношению к Object.entries(), за исключением того, что Object.entries() возвращает только свойства, ключами которых являются строки, тогда как Object.fromEntries() может также создавать свойства, ключами которых являются символы.
Примечание: В отличие от Array.from(), Object.fromEntries() не использует значение this, поэтому вызов его на другом конструкторе не создает объекты этого типа.
Примеры
Преобразование Map в объект
С помощью 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.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 }
Спецификации
Совместимость с браузерами
| Настольные | Мобильные | Серверные | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on iOS | Samsung Internet | WebView Android | WebView on iOS | Bun | Deno | Node.js | |
fromEntries |
73 |
79 |
63 |
60 |
12.1 |
73 |
63 |
52 |
12.2 |
11.0 |
73 |
12.2 |
1.0.0 |
1.0 |
12.0.0 |
Смотрите также
- Полифил
Object.fromEntriesвcore-js - Полифил es-shims
Object.fromEntries Object.entries()Object.keys()Object.values()Object.prototype.propertyIsEnumerable()Object.create()Map.prototype.entries()Map.prototype.keys()Map.prototype.values()
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/fromEntries