Перебор объекта
1. Введение
По умолчанию объект не является итерируемым, то есть по нему нельзя пройти циклом for
или for...of
как по массиву или строке. Для того, чтобы перебрать объект, существует несколько специальных конструкций. Некоторые из них чаще используются в повседневной работе, другие же необходимо знать, так как это - часть языка.
2. Цикл for...in
Перебирает ключи объекта
Можно удалять свойства во время перебора
Нельзя использовать для перебора массивов
Для того чтобы получить значение свойства с таким ключом во время итерации, используется синтаксис квадратных скобок, так как ключ всегда строка.
3. Object.keys(), Object.values(), Object.entries()
Все объекты происходят от конструктора Object
. У него есть несколько очень полезных методов для работы с объектами.
Object.keys(obj)
- вернет массив, с ключами объектаobj
в виде строк.Object.values(obj)
- вернет массив, со значениями свойств объектаobj
.Object.entries(obj)
- вернет массив записей, каждым элементом которого будет еще один массив из 2-х элементов: ключа и значения этого ключа из объектаobj
.
Скомбинировав результат Object.keys()
и цикл for...of
мы можем перебрать объект. На самом деле мы перебираем массив ключей, а потом просто обращаемся к свойству объекта с таким ключом.
А можно использовать результат Object.entries()
, который вернет массив записей с ключами и значениями свойств объекта.
Допустим перед нами стоит задача посчитать общее количество продуктов в объекте формата имя-продукта: количество
. Тогда подойдет метод Object.values()
для того, чтобы получить массив всех значений и потом удобно их сложить.
Last updated