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 январь 2020 г..
Метод 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
:
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 }
Спецификации
Specification |
---|
ECMAScript® 2026 Language Specification> # sec-object.fromentries> |
Совместимость с браузерами
Loading…