为什么“继续”在一定角度的foreach中不起作用?

rav*_*ven 5 angularjs

我有一个以下的angular应用程序,并且我有一个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...
            })
          };
       });
Run Code Online (Sandbox Code Playgroud)

有人知道为什么会这样吗?

小智 7

发生这种情况是因为您不在javascript foreach语句内。

但是我们有一个功能。您如何看待angular.forEach第二个参数是在每个循环中调用的回调巫婆。

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

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

  • return 的行为方式与常规 javascript 上的 continue 相同 (3认同)
  • return 会破坏语句 (2认同)