0
我的問題是:如何通過被調用的函數觸發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;
。
但是,即使它只是一條線,也會增加嵌套。你看到任何可能的解決方案?
你可以設置一個全局布爾等於假,將其設置爲true在你的函數,並檢查每個迭代如果布爾值爲true。 – AppleCrazy
你可以嘗試在for循環之外移動迭代器,當'somethingMatches'時,將它設置爲'someObjects.length',以便它移出循環..(只是一個念頭,從未這樣做過) – gkb
@AppleCrazy Exactly ,但正如我所提到的那樣會增加for循環中的嵌套。我知道我可以做到這一點,但我想問問是否有辦法避免嵌套。 – bash0ne