Компьютерный форум NoWa.cc Здесь может быть Ваша реклама
Правила Форума
редакция от 22.06.2020
Форум .::NoWa.cc::.
Вернуться   Компьютерный форум NoWa.cc > В помощь вебмастеру > Веб - Программирование > Java Script

Уважаемые пользователи nowa.cc. Мы работаем для вас более 20 лет и сейчас вынуждены просить о финансовой помощи по оплате за сервер.
Окажите посильную поддержку, мы очень надеемся на вас. Реквизиты для переводов ниже.
Webmoney Webmoney WMZ: Z021474945171 Webmoney WME: E159284508897 Webmoney WMUSDT: T206853643180
Кошелёк для вашей помощи YooMoney 4100117770549562
YooMoney Спасибо за поддержку!

Ответ
 
Опции темы Опции просмотра Language
Старый 24.04.2007, 12:44   #1
Постоялец
 
Пол:Мужской
Регистрация: 19.03.2007
Сообщений: 293
Репутация: 170
По умолчанию javascript рекурсивный вызов функции

есть необходимость обработать дерево, но столкнулся с проблемой.

Код:
+папка0
|-папка1
|-папка2
|+папка3
||-папка4
||-папка5
|\-папка6
\-папка7
при передаче управления в рекурсию обрабатывается только самая верхняя ветвь, предыдущие же вызовы функции перкращают обработку. То есть начиная обработку с папка0 должны попасть под раздачу все папки, так как они являются ее подпапками, но на деле же под раздачу попадает только первая ветвь:
Код:
+папка0
|-папка1
|-папка2
|+папка3
||-папка4
||-папка5
|\-папка6
а папка7 остается не у дел, так как при последовательной обработке с папки 0 на папке 3 рекурсия передалась по ветке папки4 и более к ветке папка2-папка3-папка7 не вернулась, то есть функция завершается



Есть какие-то методы решения? Можно ли как-то вызвать рекурсивную функцию параллельно?
BaBL вне форума
 
Ответить с цитированием Вверх
Здесь может быть Ваша реклама
Здесь может быть Ваша реклама


Реклама: мфу Kyocera Ecosys M2040dnгазовая плита купить москвараскладные столы для торговлиполка настенная в прихожуюгорелка для ювелиров


Старый 24.04.2007, 13:00   #2
OlegRom
Пользователь
 
Аватар для OlegRom
 
Пол:Мужской
Регистрация: 08.03.2007
Адрес: UAE, Dubai
Сообщений: 99
Репутация: 32
По умолчанию Re: javascript рекурсивный вызов функции

код в студию
__________________
Имя величайшему из всех изобретателей: Случайность.
OlegRom вне форума
 
Ответить с цитированием Вверх
Старый 24.04.2007, 13:20   #3
BaBL
Постоялец
 
Пол:Мужской
Регистрация: 19.03.2007
Сообщений: 293
Репутация: 170
По умолчанию Re: javascript рекурсивный вызов функции

Цитата:
Сообщение от OlegRom Посмотреть сообщение
код в студию

К примеру так:

Код:
function mark_check(parent,nums) {
if(nums>0){
var act = parent.checked;
var parentname = parent.name;
if (document.all || document.getElementById){
	for (i=1;i<=nums;i++){
		if(i<10){
			var currentitem = document.getElementById("check_"+parentname+"0"+i);
			var subnums = document.getElementById("subn_"+parentname+"0"+i).value;
		}
		else{
			var currentitem = document.getElementById("check_"+parentname+i);
			var subnums = document.getElementById("subn_"+parentname+i).value;
		}
		currentitem.checked = act;
		if(subnums>0){
			mark_check(currentitem,subnums);
		}
	}
}
}
return false;
}
если закомментировать mark_check - обрабатывается вся ветвь, но без рекурси дальше, если его оставить - то только одна ветвь. Пробовал вызывать другие функции - тоже прекращает выполняться. То есть это даже не в рекурсии дело, а в том, что при вызове любой функции из данной, эта останавливается. Переменные все приватные, хз почему. Пробовал возвращать значение, все равно.

Добавлено через 19 минут
Отбой.. решил траблу.

если не объявлять предварительно переменную цикла:
var i = 0;
что делает ее приватной для функции, она автоматически становится публичной. Вот ведь гадость.

Всем спасибо.

Последний раз редактировалось BaBL; 24.04.2007 в 13:39.. Причина: Добавлено сообщение
BaBL вне форума
 
Ответить с цитированием Вверх
Старый 11.10.2007, 10:27   #4
doroshenkoes
Неактивный пользователь
 
Регистрация: 11.10.2007
Сообщений: 5
Репутация: 0
Smile Ответ: javascript рекурсивный вызов функции

Тебе тоже спасибо, BaBL! Если б не твоя тема, сидел бы я еще день-другой над таким же косяком
doroshenkoes вне форума
 
Ответить с цитированием Вверх
Ответ


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
функции из dll Dr Evil Delphi 17 12.10.2010 23:50
Вызов неэкспортированной функции в DLL maxrfon Delphi 0 24.07.2009 22:15
Функции работы со строками BFTFenix Visual C++ / С/C++ 13 14.05.2008 15:58
Функции по работе с HDD Indian .NET 1 05.02.2008 18:20

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 00:34. Часовой пояс GMT +3.


Copyright ©2004 - 2025 NoWa.cc

Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2025, vBulletin Solutions, Inc. Перевод: zCarot
Время генерации страницы 0.13141 секунды с 14 запросами