[英]How can i break a for in loop from nested forEach Function in Javascript?
我有一个这个循环
for (var key in params) {
if (Array.isArray(params[key])) {
params[key].every(function(item) {
let value = something(item.start, item.end);
if (value === item.start || value == item.end) {
return false // break
}
})
}
}
当我设置return false
以停止every()
函数时,我也想停止第一个循环。 我怎样才能做到这一点? 我试过这个:
OUTER_LOOP: for (var key in params) {
if (Array.isArray(params[key])) {
params[key].every(function(item) {
let value = something(item.start, item.end);
if (value === item.start || value == item.end) {
return false // break
break OUTER_LOOP; // not working
}
})
}
}
但它不能以这种方式工作......那么我怎样才能正确地同时停止every()
函数和第一个循环?
你可以采取Array#some
,回到true
出境some
和使用的返回值some
打破循环。
for (var key in params) {
if (Array.isArray(params[key])) {
const
leave = params[key].some(item => {
let value = something(item.start, item.end);
// exit condition should return true/truthy value
// for leaving the outer loop
return value === item.start || value == item.end;
});
if (leave) break;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.