Как перебрать свойства объекта
Короткий ответ
Object.entries() возвращает пары «имя и значение», которые удобно перебирать в for...of:
const user = { name: 'Anna', age: 25 };
for (const [key, value] of Object.entries(user)) {
console.log(key + ': ' + value);
}Результат:
name: Anna
age: 25Только имена или только значения
Для этого есть Object.keys() и Object.values():
const user = { name: 'Anna', age: 25 };
console.log(Object.keys(user).join(', '));
console.log(Object.values(user).join(', '));Результат:
name, age
Anna, 25Цикл for...in
for...in проходит по ключам объекта:
const prices = { tea: 3, cake: 5 };
for (const key in prices) {
console.log(key, prices[key]);
}Результат:
tea 3
cake 5Частая ошибка
for...of напрямую с обычным объектом не работает, потому что объект не перебираемый. Используйте Object.entries():
try {
for (const item of { a: 1 }) console.log(item);
} catch (error) {
console.log(error.name);
}Результат:
TypeErrorФункции из этого ответа
- Object.entries — Возвращает массив пар «имя свойства и значение».
- Object.keys — Возвращает массив имён свойств объекта.
- Object.values — Возвращает массив значений свойств объекта.