我有一个角foreach循环,我想打破循环,如果我匹配一个值。下面的代码不能工作。
angular.forEach([0,1,2], function(count){
if(count == 1){
break;
}
});
我怎样才能得到这个?
我有一个角foreach循环,我想打破循环,如果我匹配一个值。下面的代码不能工作。
angular.forEach([0,1,2], function(count){
if(count == 1){
break;
}
});
我怎样才能得到这个?
当前回答
角。在条件匹配的情况下,forEach循环不能中断。
我个人的建议是使用NATIVE FOR循环而不是angular.forEach。
NATIVE FOR循环比其他FOR循环快90%左右。
在ANGULAR中使用FOR循环:
var numbers = [0, 1, 2, 3, 4, 5];
for (var i = 0, len = numbers.length; i < len; i++) {
if (numbers[i] === 1) {
console.log('Loop is going to break.');
break;
}
console.log('Loop will continue.');
}
其他回答
var ary = ["JavaScript", "Java", "CoffeeScript", "TypeScript"];
var keepGoing = true;
ary.forEach(function(value, index, _ary) {
console.log(index)
keepGoing = true;
ary.forEach(function(value, index, _ary) {
if(keepGoing){
if(index==2){
keepGoing=false;
}
else{
console.log(value)
}
}
});
});
这个例子有用。试一试。
var array = [0,1,2];
for( var i = 0, ii = array.length; i < ii; i++){
if(i === 1){
break;
}
}
具体地说,您可以退出forEach循环,并在任何位置抛出异常。
try {
angular.forEach([1,2,3], function(num) {
if (num === 2) throw Error();
});
} catch(e) {
// anything
}
但是,如果您使用其他库或实现自己的函数(在这种情况下是find函数)会更好,因此您的代码是最高级别的。
使用Array Some方法
var exists = [0,1,2].some(function(count){
return count == 1
});
Exists将返回true,您可以将其用作函数中的变量
if(exists){
console.log('this is true!')
}
数组一些方法- Javascript
我会用return代替break。
angular.forEach([0,1,2], function(count){
if(count == 1){
return;
}
});
效果非常好。