| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: для новичков > Рекурсивная функция |
| Автор: JAYBE 22.9.2011, 10:17 | ||
| Добрый день! Имеются массив объеков вида: Obj1.name Obj1.child[Obj1: name, child[]}, Obj2{name, child[]}] Obj2.name Obj2.child[] Подскажите, как обойти массив, проходя по каждому элементу и выводя name? Тоесть должно быть так: Obj1.name Obj1.child.Obj1.name Obj1.child.Obj2.name Obj2.name
Но витоге при обходе функция уходит вглубь первого элемента. Тоесть как только в обхекте есть элемент, она идёт по нему, но следующий родительский уже не выводит. |
| Автор: нуп 22.9.2011, 10:35 | ||
Самое главное это определение локальной переменной в функции через var. Скорей всего из-за неё и неработало |
| Автор: JAYBE 22.9.2011, 14:20 | ||
| Большое спасибо Я создаю дерево файлов и папок. Папки имеют свойство child, а файлы нет. Если рекурсия натыкается на файл, то дальше не обходит .
Т.е. при вышеперчисленных оъектах обход заканчивается на переменной data[1], она же name2. Можно это как-то исправить без добавления файлам свойства child? |
| Автор: нуп 22.9.2011, 14:23 |
| Приведите пример с массивом |
| Автор: JAYBE 22.9.2011, 16:46 | ||
Вот код:
Обращаю внимание на строку 3: <<{ name : 'name2'},>> Результатов будет вывод:
name11 name12 name2 |
| Автор: нуп 22.9.2011, 17:21 |
| Проверить на существование массива child |