Spec-Zone.ru › JavaScript

Object.values()

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

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

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

Попробовать

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

console.log(Object.values(object));
// Expected output: Array ["some string", 42, false]

Синтаксис

Object.values(obj)

Параметры

obj
Объект.

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

Массив, содержащий значения собственных перечисляемых свойств данного объекта, ключами которых являются строки.

Описание

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

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

Примеры

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

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

// Array-like object
const arrayLikeObj1 = { 0: "a", 1: "b", 2: "c" };
console.log(Object.values(arrayLikeObj1)); // ['a', 'b', 'c']

// Array-like object with random key ordering
// When using numeric keys, the values are returned in the keys' numerical order
const arrayLikeObj2 = { 100: "a", 2: "b", 7: "c" };
console.log(Object.values(arrayLikeObj2)); // ['b', 'c', 'a']

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

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

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

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

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

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

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

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

Десктоп Мобильные Сервер
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
values
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.values в core-js
  • Полифил es-shims Object.values
  • Перечисляемость и принадлежность свойств
  • Object.keys()
  • Object.entries()
  • Object.prototype.propertyIsEnumerable()
  • Object.create()
  • Object.getOwnPropertyNames()
  • 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/values

Spec-Zone.ru

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