This page was translated from English by the community.Learn more and join the MDN Web Docs community.
Object.entries()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since март 2017 г..
Object.entries() метод возвращает массив собственных перечисляемых свойств указанного объекта в формате[key, value], в том же порядке, что и в циклеfor...in (разница в том, что for-in перечисляет свойства из цепочки прототипов). Порядок элементов в массиве который возвращаетсяObject.entries() не зависит от того как объект объявлен. Если существует необходимость в определённом порядке, то массив должен быть отсортирован до вызова метода, напримерObject.entries(obj).sort((a, b) => a[0] - b[0]);.
In this article
Интерактивный пример
const object1 = { a: "somestring", b: 42,};for (const [key, value] of Object.entries(object1)) { console.log(`${key}: ${value}`);}// Expected output:// "a: somestring"// "b: 42"Синтаксис
Object.entries(obj)
Параметры
objОбъект, чьи перечислимые свойства будут возвращены в виде массива
[key, value].
Возвращаемое значение
Массив перечислений собственных свойств объекта с парами[key, value].
Описание
Object.entries() возвращает массив, элементами которого являются массивы, соответствующие перечисляемому свойству пары[key, value], найденной прямо вobject. Порядок свойств тот же, что и при прохождении циклом по свойствам объекта вручную.
Примеры
var obj = { foo: "bar", baz: 42 };console.log(Object.entries(obj)); // [ ['foo', 'bar'], ['baz', 42] ]// массив как объектvar obj = { 0: "a", 1: "b", 2: "c" };console.log(Object.entries(obj)); // [ ['0', 'a'], ['1', 'b'], ['2', 'c'] ]// массив как объект c random сортировкой ключейvar an_obj = { 100: "a", 2: "b", 7: "c" };console.log(Object.entries(an_obj)); // [ ['2', 'b'], ['7', 'c'], ['100', 'a'] ]// getFoo is property which isn't enumerablevar my_obj = Object.create( {}, { getFoo: { value: function () { return this.foo; }, }, },);my_obj.foo = "bar";console.log(Object.entries(my_obj)); // [ ['foo', 'bar'] ]// non-object argument will be coerced to an objectconsole.log(Object.entries("foo")); // [ ['0', 'f'], ['1', 'o'], ['2', 'o'] ]// returns an empty array for any primitive type, since primitives have no own propertiesconsole.log(Object.entries(100)); // [ ]// iterate through key-value gracefullyconst obj = { a: 5, b: 7, c: 9 };for (const [key, value] of Object.entries(obj)) { console.log(`${key} ${value}`); // "a 5", "b 7", "c 9"}// Or, using array extrasObject.entries(obj).forEach(([key, value]) => { console.log(`${key} ${value}`); // "a 5", "b 7", "c 9"});ПреобразованиеObject вMap
Конструкторnew Map() принимает повторениезначений. СObject.entries вы легко можете преобразоватьObject вMap:
var obj = { foo: "bar", baz: 42 };var map = new Map(Object.entries(obj));console.log(map); // Map { foo: "bar", baz: 42 }Итерация поObject
Используяметод Разбора Массивов Вы можете легко итерировать объекты.
const obj = { foo: 'bar', baz: 42 };Object.entries(obj).forEach(([key, value]) => console.log(`${key}: ${value}`)); // "foo: bar", "baz: 42"Полифил
Чтобы добавить поддержкуObject.entries в более старых окружениях, которые не поддерживают его нативно, вы можете найти полифил вtc39/proposal-object-values-entries илиes-shims/Object.entries репозиториях.
Спецификации
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-object.entries> |