0

我的问题是:如何通过被调用的函数触发一个break;或for 循环?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;
但这 - 即使它只是一行 - 也会增加嵌套。您看到任何可能的解决方案吗?

4

1 回答 1

0

如果您使用的是我推荐的下划线库,您可以编写以下内容:

_.any(someObjects, doSomething);

function doSomething(object) {
  //some code here
  return somethingIsDefined &&
    doSomethingElse(object);
}

function doSomethingElse(anotherObject) {
  //some more code here
  return  somethingMatches;
}
于 2016-11-17T06:18:21.480 回答