2012-09-02 1 views
0

사용자/엔진 정의 함수를 반복 할 때 for 루프의 '중단'기능을 구현하는 가장 좋은 방법은 무엇입니까?JavaScript : 'foreach'루프 내에서 'break'시뮬레이션

foreach([0,1,2,3,4],function(n){ 
    console.log(n); 
    if (n==2) 
     break;}); 

나는 기능이 'false'로 돌아 왔을 때 끊을 수있는 방법에 foreach 문을 구현 생각했습니다 -하지만 난 그가 일반적으로 수행하는 방법에 대한 의견을 듣고 싶습니다.

답변

7

return ing false이이를 수행하는 가장 일반적인 방법입니다. 즉 jQuery의 반복자 기능 .each()가하는 작업은 다음과 같습니다

우리는 콜백 함수 반환 거짓를 만들어 특정 반복에서 $의 .each() 루프를 중단 할 수 있습니다. false가 아닌 경우는 for 루프의 continue 문과 동일합니다. 즉시 다음 반복으로 건너 뜁니다.

그리고 그 매우 간단하게 구현 :

each: function(object, callback) { 
    var i = 0, length = object.length, 
    for (var value = object[0]; 
     i < length && callback.call(value, i, value) !== false; // break if false is returned by the callback 
     value = object[++i]) {} 
    return object; 
} 
+0

이 질문에 응답합니다. 감사! – MaiaVictor

관련 문제