为什么'继续'在一个有角度的foreach中不起作用?

时间:2016-11-30 21:47:18

标签: angularjs

我有一个角度应用程序,如下所示,我有一个angular.forEach函数,我想用continue关键字跳过一些值,但我不能。

<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 个答案:

答案 0 :(得分:3)

这是因为您不在javascript foreach语句中。

但我们处于一种功能中。如何看到angular.forEach第二个参数是在每个循环中调用的回调函数。

因此,要解决您的问题,您只需使用简单的“返回”来跳转与您的if条件匹配的当前位置,如下所示:

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