Обход объектов в JavaScript

Перейти в телеграм, чтобы получить результаты теста
Пройдите тест, узнайте какой профессии подходите
Вам подходит профессия:
Аналитик данных
Основные характеристики профессии:
не нужно общаться с людьми
логика
анализ
поиск закономерностей
работа с числами
Построим личный план перехода в профессию для вас бесплатно
- убедитесь, подходит вам профессия или нет
- получите оценку своих навыков и шансов освоить профессию
- забронируем за вами скидку 55% на обучение, пока думаете
Позвоним вам в течение часа — не пропустите звонок
Чем занимается специалист
Специалист создает все онлайн-продукты, программы, приложения, игры и сайты, которыми вы пользуетесь каждый день.
Создает — значит описывает последовательность действий на специальном языке программирования. Настраивает действия, что должно произойти, если пользователь нажмет на кнопку.
Средняя зарплата начинающего специалиста в первый год работы:
от 50 000 ₽
Что надо знать и уметь, чтобы выучиться на аналитика:
- базовое школьное образование
- уверенные навыки работы с компьютером
- опыт выполнения задач в конкретные сроки
Глубокие знания математики или английского не нужны
Почему мы рекомендуем вам эту профессию
Ваш скрытый талант:
наблюдательность
В JavaScript часто встречаются случаи, когда требуется обойти все свойства объекта, включая вложенные объекты. Представьте, что есть объект, в котором каждое
В JavaScript часто встречаются случаи, когда требуется обойти все свойства объекта, включая вложенные объекты. Представьте, что есть объект, в котором каждое свойство — это еще один объект с собственными свойствами:
var data = {
"item1": {
"name": "apple",
"color": "red"
},
"item2": {
"name": "banana",
"color": "yellow"
}
}
В этом примере каждый «item» — это объект с двумя свойствами: «name» и «color». Как можно обойти все эти свойства, включая вложенные?
Один из способов — использовать цикл for...in
, который обходит все перечисляемые свойства объекта, включая свойства из цепочки прототипов. Но в данном случае нам нужно обойти только собственные свойства объекта, поэтому используется метод Object.hasOwnProperty()
.
for (var key in data) {
if (data.hasOwnProperty(key)) {
var obj = data[key];
for (var prop in obj) {
if (obj.hasOwnProperty(prop)) {
console.log(key, prop, obj[prop]);
}
}
}
}
В этом коде внешний цикл for...in
обходит все ключи объекта «data», а внутренний цикл for...in
— все свойства каждого вложенного объекта. Метод Object.hasOwnProperty()
проверяет, является ли свойство собственным (а не унаследованным) для объекта.
Таким образом, можно обойти все свойства объекта, включая свойства вложенных объектов. Этот подход можно адаптировать под любую структуру объекта, добавляя еще уровни вложенности при необходимости.
Добавить комментарий