在函数调用中中断或继续循环

Break or continue loop within function calls

本文关键字:继续 循环 中断 函数调用      更新时间:2023-09-26

我的问题是:如何通过调用函数触发break;continue;的循环?问题是,我不想在循环中嵌套所有可能的条件以避免代码复杂性。我在想一些伪例子:

var someObjects = [...] //array with some js objects    
for (var i = 0; i < someObjects.length; i++) {
  var element = someObjects[i];
  doSomething(element);
}
function doSomething(object) {
  //some code here
  if (somethingIsDefined) {
    doSomethingElse(object);
  }
}
function doSomethingElse(anotherObject) {
  //some more code here
  if (somethingMatches) {
    //here i would like to break the most upper loop
  }
}
//someObjects will be processed

我知道可以引入一个布尔变量,并在循环中检查它是真还是假,并根据它,break;continue; .
但是这-即使它只是一行-会增加嵌套。你认为有什么可能的解决方案吗?

如果您正在使用我推荐的Underscore库,您可以编写以下内容:

_.any(someObjects, doSomething);
function doSomething(object) {
  //some code here
  return somethingIsDefined &&
    doSomethingElse(object);
}
function doSomethingElse(anotherObject) {
  //some more code here
  return  somethingMatches;
}