같은 분할합니다 호출하십시오 라이스포리치 단락하지

[1,2,3].forEach(function(el) {
    if(el === 1) break;
});

이 방법을 사용하여 JavaScript 에서 '새' 포리치 어떻게 합니까? # 39, ve i& ',', '거짓', '와' 분할합니다 복귀하십시오 복귀하십시오 했다. '브레이크' 와 '충돌' 는 것 외에는 아무것도 복귀하십시오 계속하시겠습니까 이터레이션에.

질문에 대한 의견 (2)
해결책

'브레이크' 의 '포리치' s no. # 39 there& 기능이 추가되었습니다. 일부 예외를 발생시킬 수 인터럽트입니다 엑서큐션 정렬하려면 할 수 있습니다. 예.

<! - begin 스니핏: js 숨기십시오: 거짓값 콘솔: 진정한 바벨. &gt 거짓값 -;

var BreakException = {};

try {
  [1, 2, 3].forEach(function(el) {
    console.log(el);
    if (el === 2) throw BreakException;
  });
} catch (e) {
  if (e !== BreakException) throw e;
}

끝 - &lt 스니핏 >;!

39, t 심히 javascript 예외 aren& 예쁘다. '전통' 을 할 경우 그 안에 '정말' break loop 더 적합할 수 있습니다.

경로재설정 '일부' 어레이입니다 #

대신 사용 '일부' 어레이입니다 #:

<! - begin 스니핏: js 숨기십시오: 거짓값 콘솔: 진정한 바벨. &gt 거짓값 -;

[1, 2, 3].some(function(el) {
  console.log(el);
  return el === 2;
});

끝 - &lt 스니핏 >;!

이 때문에 '일부' 는 'true' 되돌려줍니다 즉시, 모든 콜백 실행됨을 주문하십시오 복귀하십시오 어레이당 'true', 단락 실행할 미삭.

'일부' 도 착하매 보색으로 '모든' ('거짓' 에서 선보이는 정지점을 복귀하십시오) '및' 포리치 '할 수 있는 방법 5 에디션입니다 모두 ecma 스크립트' 를 추가할 수 있는 브라우저 아리스프로토티페 they& # 39, 리 없습니다.

해설 (14)

이제 이 작업을 수행할 수 있는 더 나은 방법이 짝수 (lc-fc ES6) 을 사용하여 ECMAScript2015 새 [위한 루프] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for.of). 예를 들어, 이 후 5 번 코드를 인쇄인쇄 어레이입니다 요소를 않습니다.

<! - begin 스니핏: js 숨기십시오: 거짓값 콘솔: 진정한 바벨. &gt 거짓값 -;

let arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
for (let el of arr) {
  console.log(el);
  if (el === 5) {
    break;
  }
}

끝 - &lt 스니핏 >;!

&Solarisdvd 문서:

&gt. For.in 및 모두 퍼트로프 명령문입니다 반복할 아니다. 그 주된 차이점은 그들이 반복할 있다. , For.in 를 통해 이 편지는 오더할 삽입에서 열거 가져온 기술서임을 객체의 속성. 퍼트로프 이트레이블 객체에는 수 있는 이 가져온 기술서임을 데이터에 대한 eventtest 이터레이션된 끝났다.

필요한 인덱스에 이터레이션은? '라이트렌트리스 ()' 사용할 수 있습니다.

for (const [index, el] of arr.entries()) {
  if ( index === 5 ) break;
}
해설 (6)

모든 방법을 사용할 수 있습니다.

[1,2,3].every(function(el) {
    return !(el === 1);
});

ES6

[1,2,3].every( el => el !== 1 )

늙은 브라우저 지원 사용:

if (!Array.prototype.every)
{
  Array.prototype.every = function(fun /*, thisp*/)
  {
    var len = this.length;
    if (typeof fun != "function")
      throw new TypeError();

    var thisp = arguments[1];
    for (var i = 0; i < len; i++)
    {
      if (i in this &&
          !fun.call(thisp, this[i], i, this))
        return false;
    }

    return true;
  };
}

자세한 내용은 here.

해설 (5)

Quote 의 [매든 () '문서' 아리스프로토티페스포리치] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach):

&gt. A '포리치 () 또는 분할합니다 무리라구 중지되기를 좁히어 가 아닌' 루프 몸을 던지는 예외적인 경우입니다. 이런 행동을 하는 경우, 이 방법을 사용하여 ' ()' 는 잘못된 도구에서는 , 스포리치 일반 루프 대신. 테스트 할 경우 어레이입니다 요소를 부울입니다 조건자 대한 반환 값을 사용할 수 있습니다. '모든' () 또는 '일부' () 를 사용할 수 있습니다.

사용자 코드에 대한 (flash. 질문) 을 사용하여 제안한 @bobince ['아리스프로토티페이섬 ()'] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/some) 를 사용할 수 있습니다. 이 소송은 잘 았겠습니다 데이터베이스에구성원을 우스카스.

&gt. '콜백 함수를 배열의 각 요소에 대해 한 번 ()' 실행하므로 아리스프로토티페이섬 χ02 발견할 때까지 한 콜백하는 creditbank. 트루시 반환 값 (되는 값을 true 로 환산하면 '부울입니다'). 만약 이 같은 요소가 발견되면 즉시 '일부 ()' 가 true. 그렇지 않으면 일부 () ',' 거짓 (false) 를 반환한다. 의 값을 갖고 있는 어레이입니다 지정받습니다 indexe 대해서만 콜백하는 호출됩니다. 삭제된 적이 있는 경우, 어떤 것은 인덱스화합니다 호출되었을 할당되었는지 값.

해설 (1)

이럴 경우 죄송합니다. don& 포리치 ',' 내가 긁어줄게 # 39 사용 될 수 없다. 대신 '일반' 을 사용하여 루프를 고객이 기대하는 것 그대로 작동합니다.

var array = [1, 2, 3];
for (var i = 0; i < array.length; i++) {
  if (array[i] === 1){
    break;
  }
}
해설 (3)

Jquery '& # 39 의' 각 ',' 고려해보십시오 방법을 사용할 수 있으므로 반환되기를 거짓값 δ1 콜백 함수.

$.each(function(e, i) { 
   if (i % 2) return false;
   console.log(e)
})

또한 로다시 라이브러리보다는 ['다케휘레'] [1] 수 있는 방법을 함께 체인된 map / reduce / 배 상술합니다:

var users = [
  { 'user': 'barney',  'active': false },
  { 'user': 'fred',    'active': false },
  { 'user': 'pebbles', 'active': true }
];

_.takeWhile(users, function(o) { return !o.active; });
// => objects for ['barney', 'fred']

// The `_.matches` iteratee shorthand.
_.takeWhile(users, { 'user': 'barney', 'active': false });
// => objects for ['barney']

// The `_.matchesProperty` iteratee shorthand.
_.takeWhile(users, ['active', false]);
// => objects for ['barney', 'fred']

// The `_.property` iteratee shorthand.
_.takeWhile(users, 'active');
// => []

[1]: https://lodash.com/docs # 다케휘레

해설 (3)

예를 들어, 마치 '는' 아리스프로토티페스피드 코드에서 너희는너희가 찾고 있다. 아리스프로토티페스피드 ()아리스프로토티페스핀디네스 ()

[1, 2, 3].find(function(el) {
    return el === 2;
}); // returns 2
해설 (0)

사용하려면 [딘 Edward& # 39 의 추천] [1] 와 같이 스토피테라티온 error: 분할하려면 빼냅니다 오류, 다음과 같은 함수를 루프 잡을 필요 없이 사용할 수 있습니다 ([당초 여기에서] [2]).

// Use a closure to prevent the global namespace from be polluted.
(function() {
  // Define StopIteration as part of the global scope if it
  // isn't already defined.
  if(typeof StopIteration == "undefined") {
    StopIteration = new Error("StopIteration");
  }

  // The original version of Array.prototype.forEach.
  var oldForEach = Array.prototype.forEach;

  // If forEach actually exists, define forEach so you can
  // break out of it by throwing StopIteration.  Allow
  // other errors will be thrown as normal.
  if(oldForEach) {
    Array.prototype.forEach = function() {
      try {
        oldForEach.apply(this, [].slice.call(arguments, 0));
      }
      catch(e) {
        if(e !== StopIteration) {
          throw e;
        }
      }
    };
  }
})();

위의 코드는 부여하느뇨 같은 코드를 실행할 수 있습니다 다음 할 필요 없이 자신의 try catch 절:

// Show the contents until you get to "2".
[0,1,2,3,4].forEach(function(val) {
  if(val == 2)
    throw StopIteration;
  alert(val);
});

한 가지 중요한 기억해야 할 것은 이 아리스프로토티페스포리치 업데이트하십시오 함수은 그칠 경우 이미 있습니다. # 39 doesn& 경우 이미 존재하는 것이 아니라, t 수정하십시오 거잖나.

[1]: http://dean.edwards.name/weblog/2006/07/enum/ # comment105309 [2]: http://gotochriswest.com/blog/2011/06/30/javascript-foreach-with-breaking/ # 78dbm 주석문입니다.

해설 (0)

짧은 대답: '또는' 코드 '를 사용하여 포스터브레이크 변경하십시오 나누기가 피하기 위해 이 포리치'. 사용하지 않는 '이섬 ()' 또는 ' ()' '포스터브레이크 지에브리 에뮬레이션하도록'. 코드에서 사용하는 것을 막기 위해 '또는' 포스터브레이크 포스터브레이크 재작성할 '반복'. 이러한 방법을 사용할 때마다 '로 포스터브레이크 교체품 문헌대로야 죽일겁니다 아가씨?'

긴 대답:

'모두' 가치 '와' 지에브리 이섬 () ',' 리턴 ' ()' 'true' 되돌려줍니다 부울을 이섬 () 함수는 모든 요소를 협업공간이 'true', '거짓' 되돌려줍니다 합격한 경우 모든 함수는 모든 요소를 합격한 위한 '거짓'. 이게 기능을 하는 짓궂군요. 함수를 사용하여 테이블을 사용하는 것에 대해 훨씬 더 후, t 짓궂군요 doesn& # 39 의 CSS 대신 누가 좌절 때문에 다들 판독합니다 레이아웃용 코드에.

또한, 이러한 방법을 사용 방법은 가능한 유일한 대안은 포스터브레이크 부작용을 만들 수 있다 '' ('일부' 콜백 함수 () 은 외부의 변경하십시오 이섬), 그리고 '포스터브레이크' 이 크게 다르지 않다.

그래서 ' ()' 또는 ' ()' 를 사용하여 이섬 지에브리 포스터브레이크 ',' 루프 교체품 isn& 무료, t, t # 39 이 isn& ',' 포스터브레이크 부작용은요 # 39 이것은 훨씬 더 답답한 것은, 그 때문에 이 isn& t # 39 더 좋습니다.

넌 언제나 있을 수 없다 '에서' 포스터브레이크 재작성할 코드에 도왔으매 합니다. 사용할 수 있습니다 () ',' 윈필터 필터링합니다 어레이입니다 사용하여 사용할 수 있습니다 () '와', '이슬리스 분할합니다 어레이입니다 등드으로 스포리치 ()' 또는 '오마프 ()' 해당 부분에 대한 어레이입니다.

해설 (4)

이 솔루션은 com/downloads/global/corporate/iar/esg_prosupport. 다른 사이트. Try / catch 책정안 포리치 잡기 수 있습니다.

if(typeof StopIteration == "undefined") {
 StopIteration = new Error("StopIteration");
}

try {
  [1,2,3].forEach(function(el){
    alert(el);
    if(el === 1) throw StopIteration;
  });
} catch(error) { if(error != StopIteration) throw error; }

자세한 내용은 여기. http://dean.edwards.name/weblog/2006/07/enum/

해설 (1)

이건 그냥 뭔가 내가 문제를 해결하기 위해 마련했습니다. # 39 m pretty 있는지, 그 본래의 아스케르 인도하였 i& 문제가 해결되었습니다.


Array.prototype.each = function(callback){
    if(!callback) return false;
    for(var i=0; i
해설 (1)

내가 다른 개념을 지었지.

<! - begin 스니핏: js 숨기십시오: 거짓값 콘솔: 진정한 바벨. &gt 거짓값 -;

function forEach(array, cb) {
  var shouldBreak;
  function _break() { shouldBreak = true; }
  for (var i = 0, bound = array.length; i < bound; ++i) {
    if (shouldBreak) { break; }
    cb(array[i], i, array, _break);
  }
}

// Usage

forEach(['a','b','c','d','e','f'], function (char, i, array, _break) {
  console.log(i, char);
  if (i === 2) { _break(); }
});

끝 - &lt 스니핏 >;!

해설 (4)

39, 후에 액세스하세요 어레이입니다 don& 경우 t need to # 39 의 길이 0 으로 설정함으로써 array& 아웃해야 이터레이션에 보석 수 있습니다. 필요할 경우 이를 복제할 수 있습니다 여전히 다음에 이터레이션에 사용하여 가공합니다.

[1,3,4,5,6,7,8,244,3,5,2].forEach(function (item, index, arr) {
  if (index === 3) arr.length = 0;
});

또는 복제로:

var x = [1,3,4,5,6,7,8,244,3,5,2];

x.slice().forEach(function (item, index, arr) {
  if (index === 3) arr.length = 0;
});

이는 다음 코드에서 무순서 오류뿐만 훨씬 우수한 솔루션을 던졌다.

해설 (1)

하지만 이는 for 루프는 루프 (loop) 의 포리치 () 는 개체 참조입니다 마찬가지로 확장하지만 무너질 수 있다 "고 말했다.

var arr = [1,2,3];
for (var i = 0, el; el = arr[i]; i++) {
    if(el === 1) break;
}
해설 (0)

앞서 언급했듯이 너회가 can& # 39, t break '스포리치 ()'.

39 의 포리치 here& 약간 더 현대적인 방법으로 하고 있는 ES6 iterator. '/' 가치 '반복' 인덱스화할 액세스하려면 때 직접 볼 수 있습니다.

const array = ['one', 'two', 'three'];

for (const [index, val] of array.entries()) {
  console.log('item:', { index, val });
  if (index === 1) {
    console.log('break!');
    break;
  }
}

출력:

item: { index: 0, val: 'one' }
item: { index: 1, val: 'two' }
break!

링크

해설 (0)

이를 위해 it 액세스하려고 할 속성을 nullhack 내가 사용하는 'null' 에 오류:

try {
  [1,2,3,4,5]
  .forEach(
    function ( val, idx, arr ) {
      if ( val == 3 ) null.NULLBREAK;
    }
  );
} catch (e) {
  // e  TypeError: null has no properties
}
//
해설 (1)

내가 안단말이야 옳지 않다는 것입니다. It is not break the 루프지 컴포지션이 유카 <! - begin 스니핏: js 숨기십시오: 거짓값 콘솔: 진정한 바벨. &gt 거짓값 -;

let result = true;
[1, 2, 3].forEach(function(el) {
    if(result){
      console.log(el);
      if (el === 2){
        result = false;
      }
    }
});

끝 - &lt 스니핏 >;!

해설 (0)

유지하려면 구문, 이는 정보기술 (it) '' 포리치 유지하는 방법은 효율 (비록 좋은 아닌 일반 for loop). 확인 즉시 변수에 대해 알고 있는 스케쳐내 분할하려면 빼냅니다 루프지

이 예제는 익명 함수 기능을 중심으로 하는 '포리치' 만들기 위한 유효범위 정보를 저장하는 데 필요한 수행됨.

<! - begin 스니핏: js 숨기십시오: &gt 거짓값 -;

(function(){
    var element = document.getElementById('printed-result');
    var done = false;
    [1,2,3,4].forEach(function(item){
        if(done){ return; }
        var text = document.createTextNode(item);
        element.appendChild(text);
        if (item === 2){
          done = true;
          return;
        }
    });
})();
<div id="printed-result"></div>

끝 - &lt 스니핏 >;!

제 2 센트.

해설 (0)

그러나 다른 외곽진입

        var wageType = types.filter(function(element){
            if(e.params.data.text == element.name){ 
                return element;
            }
        });
        console.dir(wageType);
해설 (0)

'너' 기능을 제공하는 이 유틸리티를 사용하여 아리스프로토티페리에브리 분할하려면 루프을. 여기에 예 참조 Javascript 관한 문서가 mizilla developer network

해설 (0)