Что такое объекты в JavaScript и как с ними работать?
Никак не уложу в голове javascript объекты. Понимаю массивы — это список значений. А объект — это что, тоже список, но с именами?
Как создать объект, как достать из него значение и как пройтись по всем свойствам в цикле? Покажите на простом примере, пожалуйста.
2 ответа
Да, по сути объект — это набор пар «ключ: значение». Если массив хранит данные по номеру (индексу), то объект хранит по имени.
Создаём:
const user = {
name: 'Аня',
age: 20,
isStudent: true
};
Доступ к свойствам — двумя способами:
console.log(user.name); // через точку: 'Аня'
console.log(user['age']); // через скобки: 20
Через точку — когда ключ известен заранее. Через [ ] — когда имя свойства лежит в переменной:
const key = 'name';
console.log(user[key]); // 'Аня'
Добавить или изменить:
user.city = 'Москва'; // добавили новое
user.age = 21; // изменили
delete user.isStudent; // удалили
Перебрать все свойства можно через for...in или Object.entries:
for (const key in user) {
console.log(key, '=', user[key]);
}
// или красивее:
for (const [key, value] of Object.entries(user)) {
console.log(key, '=', value);
}
Ещё полезно: Object.keys(user) вернёт массив ключей, Object.values(user) — массив значений. Объекты — это основа почти всего в JS, так что время на них стоит потратить.
Чтобы не путаться: точка vs квадратные скобки.
obj.name // ключ написан буквально
obj[name] // здесь name — переменная, берётся её значение
obj['my-key'] // скобки обязательны, если в ключе дефис или пробел
Частый затык у новичков именно с дефисами и динамическими ключами — через точку такое не достанешь, только через [ ].