2016-11-30 2 views
1

私は以下のような角度のアプリを持っています。私はcontinueキーワードでいくつかの値をスキップしたいが、私はangular.forEach関数を持っていますが、できません。角度のあるforeach内で「続行」が機能しないのはなぜですか?

<div ng-app="app"> 
    <div ng-controller="test"> 
    test 
    {{printPairs()}} 
    </div> 
</div> 

angular.module("app", []) 
     .controller("test", function($scope){ 
      var array = [1,2,3,4,5,6]; 

      $scope.printPairs = function(){ 
      angular.forEach(array, function (elem) { 
       if(elem % 2 === 1){ 
       continue; 
       } 
       //More logic below... 
      }) 
      }; 
     }); 

なぜこのようなことが起こっているのですか?

+1

angular.forEachでは動作しません「継続」は:これは次のようにあなただけの、あなたの場合の条件と一致し、現在位置をジャンプして、単純な「復帰」を使用することができ、あなたの問題を解決するために

() – rrd

+0

_ continueステートメントは、現在のループまたはラベルされたループの現在の反復におけるステートメントの実行を終了し、次の反復でループの実行を継続します._これはヘルパー関数によって提供されるものではなく、ネイティブループを指します – Clive

+0

continue伝統的なforループの本体の中で使用されますが、配列のforEach関数に渡される関数では使用されません。 'if(elem%2 === 0){// logic}'だけを使用してください。とにかくforループの中でさえ、それはもっときれいになります。 –

答えて

-1

これは、javascript foreach文の中にないために発生します。

しかし、私たちは機能しています。 angular.forをどのように見ることができるか第2のパラメータはすべてのループで呼び出されるコールバックウィジェットです。

angular.forEach(array, function (value, key) { 
    if(1 === value % 2){ 
     return; 
    } 
    //More logic below... 
}) 
+1

戻るとステートメントが破られる – raven

関連する問題