Spec-Zone.ru › JavaScript

Object.entries()

Базовая версия Широко доступно

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с июля 2015 года.

Статический метод Object.entries() возвращает массив собственных перечисляемых пар [ключ, значение] свойств данного объекта, ключи которых являются строками.

Попробовать

const object = {
  a: "some string",
  b: 42,
};

for (const [key, value] of Object.entries(object)) {
  console.log(`${key}: ${value}`);
}

// Expected output:
// "a: some string"
// "b: 42"

Синтаксис

Object.entries(obj)

Параметры

obj
Объект.

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

Массив собственных перечисляемых пар [ключ, значение] свойств данного объекта, ключи которых являются строками. Каждая пара [ключ, значение] — это массив из двух элементов: первый элемент — это ключ свойства (который всегда является строкой), а второй элемент — это значение свойства.

Описание

Object.entries() возвращает массив, элементы которого являются массивами, соответствующими перечисляемым парам [ключ, значение] свойств, ключи которых являются строками, найденных непосредственно в object. Это то же самое, что и итерация с помощью цикла for...in, за исключением того, что цикл for...in перечисляет свойства также и в цепочке прототипов. Порядок массива, возвращаемого Object.entries(), такой же, как и порядок, предоставляемый циклом for...in.

Если вам нужны только ключи свойств, используйте Object.keys() вместо этого. Если вам нужны только значения свойств, используйте Object.values() вместо этого.

Примеры

Использование Object.entries()

const obj = { foo: "bar", baz: 42 };
console.log(Object.entries(obj)); // [ ['foo', 'bar'], ['baz', 42] ]

const arrayLike = { 0: "a", 1: "b", 2: "c" };
console.log(Object.entries(arrayLike)); // [ ['0', 'a'], ['1', 'b'], ['2', 'c'] ]

const randomKeyOrder = { 100: "a", 2: "b", 7: "c" };
console.log(Object.entries(randomKeyOrder)); // [ ['2', 'b'], ['7', 'c'], ['100', 'a'] ]

// getFoo is a non-enumerable property
const myObj = Object.create(
  {},
  {
    getFoo: {
      value() {
        return this.foo;
      },
    },
  },
);
myObj.foo = "bar";
console.log(Object.entries(myObj)); // [ ['foo', 'bar'] ]

Использование Object.entries() на примитивах

Аргументы, не являющиеся объектами, приводятся к объектам. undefined и null не могут быть приведены к объектам и сразу выдают ошибку TypeError. Только строки могут иметь собственные перечисляемые свойства, тогда как все остальные примитивы возвращают пустой массив.

// Strings have indices as enumerable own properties
console.log(Object.entries("foo")); // [ ['0', 'f'], ['1', 'o'], ['2', 'o'] ]

// Other primitives except undefined and null have no own properties
console.log(Object.entries(100)); // []

Преобразование объекта в Map

Конструктор Map() принимает итерируемый объект entries. С помощью Object.entries вы можете легко преобразовать из Object в Map:

const obj = { foo: "bar", baz: 42 };
const map = new Map(Object.entries(obj));
console.log(map); // Map(2) {"foo" => "bar", "baz" => 42}

Итерация по объекту

Используя деструктуризацию массива, вы можете легко выполнять итерацию по объектам.

// Using for...of loop
const 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"
}

// Using array methods
Object.entries(obj).forEach(([key, value]) => {
  console.log(`${key} ${value}`); // "a 5", "b 7", "c 9"
});

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

Спецификация
Спецификация языка ECMAScript® 2027
# sec-object.entries

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

Рабочий стол Мобильные Сервер
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
entries
54
14
47
41
10.1
54
47
41
10.3
6.0
54
10.3
1.0.0
1.0
7.0.0

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

  • Полифил Object.entries в core-js
  • Полифил es-shims для Object.entries
  • Перечисляемость и владение свойствами
  • Object.keys()
  • Object.values()
  • Object.prototype.propertyIsEnumerable()
  • Object.create()
  • Object.fromEntries()
  • Object.getOwnPropertyNames()
  • Map.prototype.entries()

© 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/entries

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API