11.10.2013, 09:50
|
Аспирант
|
|
Регистрация: 23.02.2013
Сообщений: 56
|
|
Правильный вызов функции
Всем привет!
Пишу небольшой скриптик.
В нем есть функция, в функции цикл, в цикле условие.
Мне нужно чтобы при выполнении условия данная функция останавливалась и запускалась с самого начала.
Как это правильно сделать что-то не соображу... Подскажите, пожалуйста.
|
|
11.10.2013, 10:22
|
|
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,217
|
|
Сообщение от ArtemKrass
|
функция останавливалась
|
Это как понять?
- Функция, стой! раз, два... (с)
|
|
11.10.2013, 10:36
|
|
Профессор
|
|
Регистрация: 23.06.2011
Сообщений: 1,165
|
|
break METKA
|
|
11.10.2013, 10:52
|
Аспирант
|
|
Регистрация: 23.02.2013
Сообщений: 56
|
|
Сообщение от BETEPAH
|
break METKA
|
Break же останавливает цикл, а мне надо приостановить и запустить заново всю функцию...
return подойдет?
|
|
11.10.2013, 10:55
|
|
Профессор
|
|
Регистрация: 23.06.2011
Сообщений: 1,165
|
|
Сообщение от ArtemKrass
|
Break же останавливает цикл, а мне надо приостановить и запустить заново всю функцию...
return подойдет?
|
нет. return только закончит работу функции. А что ограничивает вас поставить в условие вызов функции?
(function f() {
var a = prompt('введите единицу','1');
if (a == '1') f();
})()
Последний раз редактировалось BETEPAH, 11.10.2013 в 11:01.
|
|
11.10.2013, 11:11
|
Аспирант
|
|
Регистрация: 23.02.2013
Сообщений: 56
|
|
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
function func(val){
for (i in arr){
if (arr[i] == val){
console.info(arr[i]);
}
}
}
func(7);
Вот мне нужно при переборе массива если val совпадет с числом в масииве, прервать выполнение функции и запустить ее сначала...
|
|
11.10.2013, 11:17
|
|
Профессор
|
|
Регистрация: 23.06.2011
Сообщений: 1,165
|
|
Сообщение от ArtemKrass
|
Вот мне нужно при переборе массива если val совпадет с числом в масииве, прервать выполнение функции и запустить ее сначала...
|
С каким параметром надо запустить сначала?
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
function func(val){
for (i in arr){
if (arr[i] == val){
console.info(arr[i]);
break;
}
}
func(7);
}
func(7);
И кстати, массивы рекомендуется перебирать в цикле for (var i = 0; i < arr.length; i++), так как цикл for (i in arr) будет всякие вспомогательные ключи еще брать, он предназначен для неупорядоченных объектов
Последний раз редактировалось BETEPAH, 11.10.2013 в 11:23.
|
|
11.10.2013, 11:29
|
|
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,217
|
|
Сообщение от ArtemKrass
|
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
function func(val){
for (i in arr){
if (arr[i] == val){
console.info(arr[i]);
}
}
}
func(7);
Вот мне нужно при переборе массива если val совпадет с числом в масииве, прервать выполнение функции и запустить ее сначала...
|
Поскольку массив неизменен - ты попадаешь в вечный цикл.
И в чем с мысл?
|
|
11.10.2013, 12:11
|
Аспирант
|
|
Регистрация: 23.02.2013
Сообщений: 56
|
|
Мне и нужен вечный цикл, просто значение val у меня меняется динамически... Может пример неуданый привел
|
|
11.10.2013, 13:18
|
|
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,217
|
|
Сообщение от ArtemKrass
|
Мне и нужен вечный цикл
|
При таком подходе твой браузер будет просто "висеть", на странице ничего происходить не будет...
Сообщение от ArtemKrass
|
Может пример неуданый привел
|
Не "может", а точно неудачный.
|
|
|
|