Object.values()

Метод  Object.values() возвращает массив значений перечисляемых свойств объекта в том же порядке что и цикл for...in. Разница между циклом и методом в том, что цикл перечисляет свойства и из цепочки прототипов.

Синтаксис

Object.values(obj)

Параметры

obj
Объект, чьи значения перечисляемых свойств будут возвращены.

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

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

Описание

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

Примеры

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

// Массив как объект
var obj = { 0: 'a', 1: 'b', 2: 'c' };
console.log(Object.values(obj)); // ['a', 'b', 'c']

// Массив как объект со случайным порядком ключей
// Когда мы используем нумерованные ключ, значения возвращаются в порядке возрастания
var an_obj = { 100: 'a', 2: 'b', 7: 'c' };
console.log(Object.values(an_obj)); // ['b', 'c', 'a']

// getFoo неперечисляемое свойство
var my_obj = Object.create({}, { getFoo: { value: function() { return this.foo; } } });
my_obj.foo = "bar";
console.log(Object.values(my_obj)); // ['bar']

// Аргумент, не являющийся объектом, будет приведен к объекту
console.log(Object.values("foo")); // ['f', 'o', 'o']

Полифилл

Для добавления совместимости Object.values со старым окружением, которое не поддерживает нативно его, вы можете найти полифилл здесь tc39/proposal-object-values-entries или в es-shims/Object.values репозитарии.

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

Спецификация Статус Комментарий
ECMAScript Latest Draft (ECMA-262)
Определение 'Object.values' в этой спецификации.
Черновик
ECMAScript 2017 (ECMA-262)
Определение 'Object.values' в этой спецификации.
Стандарт Изначальное определение.

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

Update compatibility data on GitHub
КомпьютерыМобильныеServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome для AndroidFirefox для AndroidOpera для AndroidSafari on iOSSamsung InternetNode.js
valuesChrome Полная поддержка 54Edge Полная поддержка 14Firefox Полная поддержка 47IE Нет поддержки НетOpera Полная поддержка 41Safari Полная поддержка 10.1WebView Android Полная поддержка 54Chrome Android Полная поддержка 54Firefox Android Полная поддержка 47Opera Android Полная поддержка 41Safari iOS Полная поддержка 10.3Samsung Internet Android Полная поддержка 6.0nodejs Полная поддержка 7.0.0
Полная поддержка 7.0.0
Полная поддержка 6.5.0
Отключено
Отключено From version 6.5.0: this feature is behind the --harmony runtime flag.

Легенда

Полная поддержка  
Полная поддержка
Нет поддержки  
Нет поддержки
Пользователь должен сам включить эту возможность.
Пользователь должен сам включить эту возможность.

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