Итерация по вложенным объектам JavaScript
Итерация по вложенным объектам JavaScript может быть сложной задачей, особенно если вам нужно получить определенные объекты на основе свойства ценить. Давайте рассмотрим следующий пример:
var cars = {
label: 'Autos',
subs: [
{
label: 'SUVs',
subs: []
},
{
label: 'Trucks',
subs: [
{
label: '2 Wheel Drive',
subs: []
},
{
label: '4 Wheel Drive',
subs: [
{
label: 'Ford',
subs: []
},
{
label: 'Chevrolet',
subs: []
}
]
}
]
},
{
label: 'Sedan',
subs: []
}
]
};
Если мы хотим получить объект для марки «Ford», мы можем использовать рекурсивный подход:
const iterate = (obj, identifier) => {
for (let key in obj) {
if (obj[key]['label'] === identifier) {
return obj[key];
}
if (typeof obj[key] === 'object' && obj[key] !== null) {
const result = iterate(obj[key], identifier);
if (result) {
return result;
}
}
}
return null;
};
const fordObject = iterate(cars, 'Ford');
В этом примере функция итерации принимает два параметра: объект для поиска и строку идентификатора. Он перебирает свойства объекта, проверяя, соответствует ли свойство метки идентификатору. Если нет, он проверяет, является ли свойство другим объектом, и продолжает итерацию. Если соответствующий объект не найден, возвращается значение null.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3