JavaScript метод Object.values()
JavaScript ObjectОпределение и применение
JavaScript метод Object.values() возвращает массив собственных перечислимых значений свойств и методов указанного объекта.
Под перечислимыми свойствами стоит понимать те, атрибут enumerable которых имеет значение true, вследствие чего они будут перечислимы в циклах, например в цикле for...in. Атрибуты в свою очередь описываются дескрипторами свойств – это обычные объекты JavaScript, которые описывают атрибуты и значение свойства. Подробную информацию о дескрипторах свойств и атрибутах вы можете получить в описании метода defineProperty(), который позволяет определить новое или изменить существующее свойство объекта, описывая его дескрипторами.
Обращаю Ваше внимание, что метод values() игнорирует свойства, ключом которых является символ (Symbol).
Поддержка браузерами
Метод | Chrome | Firefox | Opera | Safari | IExplorer | Edge |
---|---|---|---|---|---|---|
values() | 54.0 | 47.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 ); // TypeErrorJavaScript Object