Angularjs 为什么';继续';不';不能在一个角度内工作?
我有一个angular应用程序,如下所示,我有一个angular.forEach函数,我想用Angularjs 为什么';继续';不';不能在一个角度内工作?,angularjs,Angularjs,我有一个angular应用程序,如下所示,我有一个angular.forEach函数,我想用continue关键字跳过一些值,但我不能 <div ng-app="app"> <div ng-controller="test"> test {{printPairs()}} </div> </div> angular.module("app", []) .controller("test", function($
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...
})
};
});
测试
{{printPairs()}}
角度模块(“应用程序”,[])
.控制器(“测试”,功能($范围){
var数组=[1,2,3,4,5,6];
$scope.printPairs=函数(){
角度.forEach(数组、函数(元素){
如果(元素%2==1){
继续;
}
//下面是更多的逻辑。。。
})
};
});
有人知道为什么会发生这种情况?之所以会发生这种情况,是因为您不在javascript foreach语句中 但我们在一个函数中。如何查看angular.forEach第二个参数是在每个循环中调用的回调开关 因此,为了解决您的问题,您可以使用一个简单的“返回”跳转与您的if条件匹配的当前位置,如下所示:
angular.forEach(array, function (value, key) {
if(1 === value % 2){
return;
}
//More logic below...
})
“continue”在angular.forEach()中不起作用。continue语句在当前循环或标记循环的当前迭代中终止语句的执行,并在下一次迭代中继续执行循环。这是指本机循环,而不是由helper函数提供的那些循环,因为continue可以在传统for循环的主体内使用,但不能在传递给array的forEach函数的函数中使用。只要使用
if(elem%2==0){//logic}
。无论如何,这会更干净,即使在for循环中也是如此。return将破坏语句return的行为方式与在常规javascript上继续对每个语句执行相同