source

각 루프에서 jQuery를 벗어나는 방법은 무엇입니까?

lovecheck 2023. 5. 22. 21:09
반응형

각 루프에서 jQuery를 벗어나는 방법은 무엇입니까?

jQuery 루프를 어떻게 탈출합니까?

시도해 본 결과:

 return false;

하지만 이것은 작동하지 않았습니다.아이디어 있어요?


2020년 9월 5일 업데이트

제가 넣었습니다.return false;엉뚱한 곳에제가 고리 안에 넣었을 때 모든 것이 작동했습니다.

로.break또는 루프, 당신은 돌아와야 합니다.false루프 콜백에서.

돌아오는true다음 반복으로 건너뜁니다. 다음 반복으로 건너뜁니다.continue정상적인 순환하여

$.each(array, function(key, value) { 
    if(value === "foo") {
        return false; // breaks
    }
});

// or

$(selector).each(function() {
  if (condition) {
    return false;
  }
});

문서에 따르면return false;그 일을 해야 합니다.

콜백 함수가 거짓으로 반환되도록 함으로써 $.each() 루프 [...]를 해제할 수 있습니다.

콜백에서 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를 반환하는 것은 for 루프의 continue 문과 동일하며, 다음 반복으로 바로 건너뜁니다.

루프가 깨지는 상황을 만났지만 .each() 함수 이후의 코드는 여전히 실행되었습니다.그런 다음 플래그를 "true"로 설정하고 .each() 함수 이후에 플래그를 즉시 확인하여 후속 코드가 실행되지 않았는지 확인합니다.

$('.groupName').each(function() {
    if($(this).text() == groupname){
        alert('This group already exists');
        breakOut = true;
        return false;
    }
});
if(breakOut) {
    breakOut = false;
    return false;
} 

승인된 답변이 잘못되었기 때문에 이 질문에 대한 답변을 위해 Fiddle을 만들었습니다. 게다가 이것은 이 질문과 관련하여 Google에서 반환된 첫 StackOverflow 스레드입니다.

달러를 빼려면 각각 사용해야 합니다.return false;

여기 그것을 증명하는 피들이 있습니다:

http://jsfiddle.net/9XqRy/

저는 그것이 꽤 오래된 질문이라는 것을 알지만, 왜 그리고 언제 반환과 함께 중단이 가능한지를 명확히 하는 어떤 대답도 보지 못했습니다.

두 가지 간단한 예를 들어 설명하겠습니다.

예: 이 경우, 우리는 간단한 반복을 가지고 있으며, 만약 우리가 이 세 가지를 찾을 수 있다면, 우리는 true를 반환하고 싶습니다.

function canFindThree() {
    for(var i = 0; i < 5; i++) {
        if(i === 3) {
           return true;
        }
    }
}

만약 우리가 이 함수를 호출한다면, 그것은 단순히 진실을 반환할 것입니다.

예제 이 경우 익명 함수를 매개 변수로 사용하는 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;
}

"각"은 콜백 함수를 사용합니다.콜백 함수는 호출 함수와 관계없이 실행되므로 콜백 함수에서 호출 함수로 돌아갈 수 없습니다.

어떤 조건에 따라 루프 실행을 중지하고 동일한 기능을 유지해야 하는 경우 루프에 사용합니다.

다음과 같은 방법을 사용합니다(예:

$(document).on('click', '#save', function () {
    var cont = true;
    $('.field').each(function () {
        if ($(this).val() === '') {
            alert('Please fill out all fields');
            cont = false;
            return false;
        }
    });
    if (cont === false) {
        return false;
    }
    /* commands block */
});

cont가 false가 아닌 경우 명령 블록 실행

언급URL : https://stackoverflow.com/questions/1784780/how-to-break-out-of-jquery-each-loop

반응형