문제

나는 다양한 요소를 통해 반복하려고 노력하고 있습니다. jQuery의 문서는 다음과 같습니다.

jQuery.each () 문서

비금장을 반환하는 것은 For Loop의 계속 명세서와 동일하며 다음 반복으로 즉시 건너 뜁니다.

나는 '비가 오지 않은 반품'이라고 부르려고 노력했다. 그리고 '비-폴스;' (Sans Return) 다음 반복으로 건너 뛰지 않습니다. 대신, 그들은 루프를 깨뜨립니다. 내가 무엇을 놓치고 있습니까?

도움이 되었습니까?

해결책

비가 비자가 의미하는 바는 다음과 같습니다.

return true;

그래서이 코드 :

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

하나, 둘, 4, 5를 경고합니다

다른 팁

'비가 오지 않은'이라는 것은 부울 거짓으로 운동하지 않는 값을 반환한다는 것을 의미합니다. 그래서 당신은 돌아올 수 있습니다 true, 1, 'non-false', 또는 당신이 생각할 수있는 다른 것.

JavaScript 종류는 '진실성'과 '거짓'이라는 아이디어를 가지고 있습니다. 변수에 값이 있으면 일반적으로 9AS가 볼 수 있습니다. 아래 스 니펫이 도움이 될 수 있습니다.

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에게 감사합니다 - 지금 작업 버전에서 포인트로 업데이트되었습니다.

JavaScript 언어

JavaScript- 좋은 부분

다음 반복에 도달하기 위해 블록의 끝에서 떨어지는 경우 가끔 잊지 마십시오.

$(".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, 아무것도 반환하지 않으면 반환하는 것입니다. 따라서 빈 반환 문을 사용할 수 있습니다.

$.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}
});
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top