What's the best way to break from nested loops in JavaScript? What's the best way to break from nested loops in JavaScript? javascript javascript

What's the best way to break from nested loops in JavaScript?


Just like Perl,

loop1:    for (var i in set1) {loop2:        for (var j in set2) {loop3:            for (var k in set3) {                break loop2;  // breaks out of loop3 and loop2            }        }    }

as defined in EMCA-262 section 12.12. [MDN Docs]

Unlike C, these labels can only be used for continue and break, as Javascript does not have goto.


Wrap that up in a function and then just return.


I'm a little late to the party but the following is a language-agnostic approach which doesn't use GOTO/labels or function wrapping:

for (var x = Set1.length; x > 0; x--){   for (var y = Set2.length; y > 0; y--)   {      for (var z = Set3.length; z > 0; z--)      {          z = y = -1; // terminates second loop          // z = y = x = -1; // terminate first loop      }   }}

On the upside it flows naturally which should please the non-GOTO crowd. On the downside, the inner loop needs to complete the current iteration before terminating so it might not be applicable in some scenarios.