Как получить значения объекта в JavaScript?
Объекты и прототипы
Значения объекта получают через `Object.values(obj)` (массив значений), `Object.entries(obj)` (пары ключ-значение), или перебором ключей с доступом `obj[key]`.
Object.values — массив значений
const user = { name: 'Ann', age: 25 };
Object.values(user); // ['Ann', 25]Object.entries — пары [ключ, значение]
Object.entries(user); // [['name', 'Ann'], ['age', 25]]
for (const [key, value] of Object.entries(user)) {
console.log(key, value);
}Object.keys + доступ
Object.keys(user).forEach((key) => {
console.log(user[key]); // значение по ключу
});for...in (с осторожностью)
for (const key in user) {
if (user.hasOwnProperty(key)) {
console.log(user[key]); // включает унаследованные — фильтровать
}
}Различия методов
- Object.values — только значения.
- Object.keys — только ключи.
- Object.entries — пары (удобно для итерации с ключом и значением).
Все три возвращают только собственные перечисляемые свойства (без прототипа), в порядке вставки (кроме целочисленных ключей).
Практика
// Сумма значений
const total = Object.values(prices).reduce((a, b) => a + b, 0);
// Преобразование объекта
const upper = Object.fromEntries(
Object.entries(obj).map(([k, v]) => [k, v.toUpperCase()])
);Коротко для собеседования
Значения объекта: Object.values(obj) (массив значений), Object.entries(obj) (пары [key, value] — удобно для итерации), или Object.keys(obj) + obj[key]. Все возвращают только собственные перечисляемые свойства. for...in включает унаследованные (фильтровать hasOwnProperty). Для трансформации — Object.fromEntries.