JavaScript метод Object.values()ECMAScript 2017

JavaScript Object

Определение и применение

JavaScript метод Object.values()ECMAScript 2017 возвращает массив собственных перечислимых значений свойств и методов указанного объекта.

Под перечислимыми свойствами стоит понимать те, атрибут enumerable которых имеет значение true, вследствие чего они будут перечислимы в циклах, например в цикле for...in. Атрибуты в свою очередь описываются дескрипторами свойств – это обычные объекты JavaScript, которые описывают атрибуты и значение свойства. Подробную информацию о дескрипторах свойств и атрибутах вы можете получить в описании метода defineProperty(), который позволяет определить новое или изменить существующее свойство объекта, описывая его дескрипторами.


Обращаю Ваше внимание, что метод values()ECMAScript 2017 игнорирует свойства, ключом которых является символ (Symbol).


Поддержка браузерами

МетодChrome
Chrome
Firefox
Firefox
Opera
Opera
Safari
Safari
Internet Explorer
IExplorer
Microsoft Edge
Edge
values()ECMAScript 201754.047.0Да10.1НетДа

JavaScript синтаксис:

Object.values( obj );

Версия JavaScript

ECMAScript 2017 (8th Edition, ECMA-262)

Значения параметров

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

Исключения

Тип исключенияОписание
TypeErrorВозникает в том случае, если методу в качестве значения параметра передается undefined или null (не удается преобразовать значение undefined или null в объект).

Пример использования

let obj = {a: 1, b: 2, c: () => console.log( "hello" )};
let newArr = Object.values( obj );
console.log( newArr ); // переменная содержит значение [ 1, 2, () => console.log( "hello" ) ]

// изменяем в объекте существующее свойство
Object.defineProperty( obj, "c", {
    enumerable: false // устанавливаем, что свойство не перечислимо
});

console.log( Object.values( obj ) ); // переменная содержит значение [ 1, 2 ]

let str = "Hello"
let newArr = Object.values( str ); 
console.log( newArr ); // переменная содержит значение [ "H", "e", "l", "l", "o"]

let arr = ["a", "b", "c"]
let newArr = Object.values( arr ); 
console.log( newArr ); // переменная содержит значение [ "a", "b", "c" ]

let objWithSymbol = { [Symbol( "123" )]:"123", a: "test" }
let newArr = Object.values( objWithSymbol ); // игнорирует свойства, ключом которых является символ
console.log( newArr ); // переменная содержит значение [ "test" ]

Object.entries( undefined ); // TypeError 
Object.entries( null ); // TypeError
JavaScript Object