我有一个角foreach循环,我想打破循环,如果我匹配一个值。下面的代码不能工作。
angular.forEach([0,1,2], function(count){
if(count == 1){
break;
}
});
我怎样才能得到这个?
我有一个角foreach循环,我想打破循环,如果我匹配一个值。下面的代码不能工作。
angular.forEach([0,1,2], function(count){
if(count == 1){
break;
}
});
我怎样才能得到这个?
当前回答
据我所知,Angular并没有提供这样的函数。你可能想要为此使用下划线的find()函数(它基本上是一个forEach,一旦函数返回true就会跳出循环)。
http://underscorejs.org/#find
其他回答
break在angular forEach中是不可能实现的,我们需要修改forEach来实现。
$scope.myuser = [{name: "Ravi"}, {name: "Bhushan"}, {name: "Thakur"}];
angular.forEach($scope.myuser, function(name){
if(name == "Bhushan") {
alert(name);
return forEach.break();
//break() is a function that returns an immutable object,e.g. an empty string
}
});
onSelectionChanged(event) {
let selectdata = event['api']['immutableService']['gridOptionsWrapper']['gridOptions']['rowData'];
let selected_flag = 0;
selectdata.forEach(data => {
if (data.selected == true) {
selected_flag = 1;
}
});
if (selected_flag == 1) {
this.showForms = true;
} else {
this.showForms = false;
}
}
使用Array Some方法
var exists = [0,1,2].some(function(count){
return count == 1
});
Exists将返回true,您可以将其用作函数中的变量
if(exists){
console.log('this is true!')
}
数组一些方法- Javascript
这个例子有用。试一试。
var array = [0,1,2];
for( var i = 0, ii = array.length; i < ii; i++){
if(i === 1){
break;
}
}
我知道这是旧的,但数组过滤器可以满足你的需要:
var arr = [0, 1, 2].filter(function (count) {
return count < 1;
});
然后你可以运行arr。forEach和其他数组函数。
我意识到,如果你打算完全减少循环操作,这可能不会达到你想要的效果。所以你最好趁现在。