Как вырваться из jQuery каждого цикла
как мне вырваться из jQuery each
петли?
Я пробовал:
return false;
в цикле, но это не работало. Есть идеи?
обновление хотя неясно, какова была первоначальная область вопроса, пожалуйста, будьте осторожны, что выбранный ответ охватывает только
6 ответов
до break
a $.each
loop, вы должны вернуться false
в цикле обратного вызова.
возвращение true
переходит к следующей итерации, эквивалентной continue
в нормальном цикле.
$.each(array, function(key, value) {
if(value === "foo") {
return false;
}
});
вырваться из $().each
петля покрыта как разбить / выйти из функции each () в JQuery?
согласно документации return false;
должен выполнить работу.
мы можем сломать $.каждый цикл.[ .] путем создания функции обратного вызова возвращать false.
Return false в обратном вызове:
function callback(indexInArray, valueOfElement) {
var booleanKeepGoing;
this; // == valueOfElement (casted to Object)
return booleanKeepGoing; // optional, unless false
// and want to stop looping
}
кстати, continue
работает так:
возврат non-false такой же, как оператор continue в цикле for; он сразу же перейдет к следующей итерации.
Я создал скрипку для ответа на этот вопрос, потому что принятый ответ неверен, плюс это первый поток StackOverflow, возвращенный из Google по этому вопросу.
чтобы вырваться из $.каждый вы должны использовать return false;
вот Скрипка, доказывающая это:
я столкнулся с ситуацией, когда я встретил условие, которое сломало цикл, однако код после .каждая функция () все еще выполняется. Затем я установил флаг в " true "с немедленной проверкой флага после.каждая функция () для обеспечения того, чтобы следующий код не был выполнен.
$('.groupName').each(function() {
if($(this).text() == groupname){
alert('This group already exists');
breakOut = true;
return false;
}
});
if(breakOut) {
breakOut = false;
return false;
}
"друг" использует функцию обратного вызова. Функция обратного вызова выполняется независимо от вызывающей функции, поэтому возврат к вызывающей функции из функции обратного вызова невозможен.
используйте для цикла, Если вам нужно остановить выполнение цикла на основе некоторого условия и остаться в той же функции.
Я знаю его довольно старый вопрос, но я не видел никакого ответа, который проясняет, почему и когда его можно разорвать с возвращением.
Я хотел бы объяснить это с 2 простых примера:
1. Пример: в этом случае у нас есть простая итерация, и мы хотим сломать с return true, если мы сможем найти три.
function canFindThree() {
for(var i = 0; i < 5; i++) {
if(i === 3) {
return true;
}
}
}
если мы вызовем эту функцию, она просто вернет true.
2. Пример в этом случае мы хотим выполнить итерацию с помощью jQuery каждая функция, который принимает анонимную функцию в качестве параметра.
function canFindThree() {
var result = false;
$.each([1, 2, 3, 4, 5], function(key, value) {
if(value === 3) {
result = true;
return false; //This will only exit the anonymous function and stop the iteration immediatelly.
}
});
return result; //This will exit the function with return true;
}