Object.values() возвращает массив значений всех перечисляемых свойств объекта. В отличие от for…in, он не перебирает унаследованные свойства и возвращает сразу значения, а не ключи.
const user = { name: 'Иван', age: 25 };
const values = Object.values(user);
console.log(values); // ['Иван', 25]Object.values() — это метод для получения всех значений свойств объекта. Он простой и удобный, когда нужно работать только со значениями, а не с ключами.
Возвращает массив значений свойств:
const user = { name: 'Иван', age: 25 };
const values = Object.values(user);
console.log(values); // ['Иван', 25]const obj = { a: 1, b: 2, c: 3 };
console.log(Object.values(obj)); // [1, 2, 3]const obj = { name: 'Иван' };
// Не включает toString, hasOwnProperty и другие унаследованные методыconst user = {
name: 'Иван',
age: 25,
city: 'Москва'
};
const values = Object.values(user);
console.log(values); // ['Иван', 25, 'Москва']const scores = { math: 5, physics: 4, chemistry: 5 };
// Сумма всех оценок
const total = Object.values(scores).reduce((sum, score) => sum + score, 0);
console.log(total); // 14// Порядок такой же, как в for...in
const obj = { 3: 'три', 1: 'один', 2: 'два', a: 'буква' };
console.log(Object.values(obj)); // ['один', 'два', 'три', 'буква']const obj = { name: 'Иван' };
// Скрываем свойство
Object.defineProperty(obj, 'hidden', {
value: 'секрет',
enumerable: false
});
console.log(Object.values(obj)); // ['Иван'] - hidden не видноconst user = { name: 'Иван', age: 25 };
// ❌ Сложный способ
const values1 = [];
for (let key in user) {
if (user.hasOwnProperty(key)) {
values1.push(user[key]);
}
}
// ✅ Простой способ
const values2 = Object.values(user);const prices = { apple: 100, banana: 50, orange: 80 };
// Найти максимальную цену
const maxPrice = Math.max(...Object.values(prices));
console.log(maxPrice); // 100// ❌ Думаем, что получим ключи
const obj = { a: 1, b: 2 };
const result = Object.values(obj);
console.log(result); // [1, 2] - значения, не ключи!
// ✅ Для ключей используем Object.keys()
const keys = Object.keys(obj);
console.log(keys); // ['a', 'b']// ❌ Попытка использовать с примитивами
Object.values(42); // Ошибка!
// ✅ Только с объектами
Object.values({ value: 42 }); // [42]Object.values() удобен, когда нужно работать только со значениями свойств объекта. Он проще, чем for…in, и не требует проверок на наследование.
Хотите больше статей для подготовки к собеседованиям? Подписывайтесь на EasyAdvice, добавляйте сайт в закладки и совершенствуйтесь каждый день 💪