Object.values()

Статичний метод Object.values() (значення) повертає масив значень власних перелічуваних властивостей переданого об'єкта, чиїми ключами є рядки.

Спробуйте його в дії

Синтаксис

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]

// Масивоподібний об'єкт
const arrayLikeObj1 = { 0: "a", 1: "b", 2: "c" };
console.log(Object.values(arrayLikeObj1)); // ['a', 'b', 'c']

// Масивоподібний об'єкт з випадковим порядком ключів
// При використанні числових ключів значення повертаються згідно з числовим порядком ключів
const arrayLikeObj2 = { 100: "a", 2: "b", 7: "c" };
console.log(Object.values(arrayLikeObj2)); // ['b', 'c', 'a']

// getFoo – неперелічувана властивість
const myObj = Object.create(
  {},
  {
    getFoo: {
      value() {
        return this.foo;
      },
    },
  },
);
myObj.foo = "bar";
console.log(Object.values(myObj)); // ['bar']

Застосування Object.values() на примітивах

Необ'єктні аргументи зводяться до об'єктів. Значення undefined і null не можуть бути зведення до об'єкта та зразу викидають TypeError. Лише рядки можуть мати власні перелічувані властивості, решта ж примітивів – повертає порожній масив.

// Рядки мають індекси за власні перелічувані властивості
console.log(Object.values("foo")); // ['f', 'o', 'o']
// Решта примітивів, крім undefined і null, не має власних властивостей
console.log(Object.values(100)); // []

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

Сумісність із браузерами

desktop mobile server
Chrome Edge Firefox Internet Explorer Opera Safari WebView Android Chrome Android Firefox for Android Opera Android Safari on iOS Samsung Internet Deno Node.js
values
Chrome Full support 54
Edge Full support 14
Firefox Full support 47
Internet Explorer No support No
Opera Full support 41
Safari Full support 10.1
WebView Android Full support 54
Chrome Android Full support 54
Firefox for Android Full support 47
Opera Android Full support 41
Safari on iOS Full support 10.3
Samsung Internet Full support 6.0
Deno Full support 1.0
Node.js Full support 7.0.0

Дивіться також