0

i know the question has been asked many times. but im not getting it done. can some one help in to exit from inner loop only. break labelname not working for me.

loop1:
    for (var i = 0; i < timeHolder.length; i++) {
    loop2:
        for (var key2 in self.TimeHolder[0]) {

            if (self.TimeHolder[0].hasOwnProperty(key2)) {
                if (self.TimeHolder[0][key2] == timeHolder[i]) {
                    var pattern = _.pick(row, key2)[key2];
                    var status = pattern.split('-');

                    $('#tblMatrix tr:last').append(self.createCompanyStatusRowsByRow(status));
                  break loop2;
                }
            }
        }
    }

however break loop2 exits from outer loop also.

amaters
  • 2,266
  • 2
  • 24
  • 44
Sangeeta
  • 164
  • 4
  • 16

3 Answers3

4

Take a look at this question: Best way to break from nested loops in Javascript? Best answer (I think) is:

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
            }
        }
    }
Community
  • 1
  • 1
amaters
  • 2,266
  • 2
  • 24
  • 44
1

Just use break instead of break loop2.

The break keyword will break you out of the current executing loop.

James
  • 80,725
  • 18
  • 167
  • 237
0

A simple break works perfectly for me.

var elems = [ "a","b","c","d","e" ];
for( var i = 0; i < 5; i++ ) {

  console.log( i );

  for( var j in els ) {

    if( elems[j] == "c" ) {

      break;
    }

    console.log( " " + elems[j] );
  }
}

With expected output

0
 a
 b
1
 a
 b
2
 a
 b
3
 a
 b
4
 a
 b
EricG
  • 3,788
  • 1
  • 23
  • 34