Programing

jQuery.each () 유틸리티에서 다음 반복으로 건너 뛰는 방법?

lottogame 2020. 2. 19. 21:17
반응형

jQuery.each () 유틸리티에서 다음 반복으로 건너 뛰는 방법?


요소 배열을 반복하려고합니다. jQuery의 설명서는 다음과 같이 말합니다.

jquery.Each () 문서

false가 아닌 것을 리턴하는 것은 for 루프의 continue 문과 동일하며 다음 반복으로 즉시 건너 뜁니다.

나는 'false non-false;'라고 부르려고 노력했다. 그리고 '거짓이 아닙니다.' 다음 반복으로 건너 뛰지 않습니다. 대신, 그들은 루프를 끊습니다. 내가 무엇을 놓치고 있습니까?


그들이 거짓이 아닌 것은 다음과 같습니다.

return true;

따라서이 코드 :

var arr = [ "one", "two", "three", "four", "five" ];
$.each(arr, function(i) {
    if(arr[i] == 'three') {
        return true;
    }
    alert(arr[i]);
});

하나, 둘, 넷, 다섯 경고합니다


'false non-false'라는 말은 거짓을 부울 처리 할 수없는 값을 반환한다는 의미입니다. 당신은 반환 할 수 있도록 true, 1, 'non-false', 또는 어떤 다른 당신은 최대 생각할 수 있습니다.


자바 스크립트에는 '진실성'과 '거짓'이라는 개념이 있습니다. 변수에 값이있는 경우 일반적으로 9에서 볼 수 있듯이) 'truthiness'-null이거나 값이 'falsiness'인 경향이 없습니다. 아래 스 니펫이 도움이 될 수 있습니다.

var temp1; 
if ( temp1 )...  // false

var temp2 = true;
if ( temp2 )...  // true

var temp3 = "";
if ( temp3 ).... // false

var temp4 = "hello world";
if ( temp4 )...  // true

희망이 도움이 되셨습니까?

또한 Douglas Crockford에서 이러한 비디오를 확인하는 것이 좋습니다.

업데이트 : 깨진 링크를 찾아 주셔서 감사합니다 @ cphpython-작동 버전을 가리 키도록 업데이트했습니다.

자바 스크립트 언어

자바 스크립트-좋은 부분


때때로 다음 반복에 도달하기 위해 블록의 끝에서 떨어질 수 있음을 잊지 마십시오.

$(".row").each( function() {
    if ( ! leaveTheLoop ) {
        ... do stuff here ...
    }
});

실제로 다음과 같이 돌아 오는 대신 :

$(".row").each( function() {
    if ( leaveTheLoop ) 
        return; //go to next iteration in .each()
    ... do stuff here ...
});

루프는 단지 당신이 말 그대로 반환하면 나누기 false. 전의:

// this is how jquery calls your function
// notice hard comparison (===) against false
if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
   break;
}

즉, undefined아무것도 반환하지 않으면 반환되는 것을 포함하여 다른 것을 반환 할 수 있으므로 빈 return 문을 사용할 수 있습니다.

$.each(collection, function (index, item) {
   if (!someTestCondition)
      return; // go to next iteration

   // otherwise do something
});

버전마다 다를 수 있습니다. 이것은 jquery 1.12.4에 적용됩니다. 그러나 실제로 함수의 맨 아래를 종료하면 아무것도 반환하지 않으므로 루프가 계속되는 이유이므로 아무것도 반환하지 않으면 루프를 계속할 없습니다 . 모든 사람들이 루프를 유지하기 위해 무언가를 반환하도록 강요하지 않는 한, 아무것도 반환하지 않으면 루프를 계속 유지할 수있는 방법 아니 어야합니다.


jQuery.noop () 이 도울 수 있습니다

$(".row").each( function() {
    if (skipIteration) {
        $.noop()
    }
    else{doSomething}
});

참고 URL : https://stackoverflow.com/questions/481601/how-to-skip-to-next-iteration-in-jquery-each-util



반응형