0

我知道这个问题已经被问过很多次了。但我没有完成它。有人只能帮助退出内循环吗?break labelname 对我不起作用。

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;
                }
            }
        }
    }

但是 break loop2 也从外循环退出。

4

3 回答 3

4

看看这个问题:Best way to break from nested loops in Javascript? 最佳答案(我认为)是:

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
            }
        }
    }
于 2013-01-18T08:53:51.943 回答
1

只需使用break而不是break loop2.

break关键字将使您脱离当前的执行循环。

于 2013-01-18T08:57:48.507 回答
0

一个简单的休息非常适合我。

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] );
  }
}

有预期的输出

0
 a
 b
1
 a
 b
2
 a
 b
3
 a
 b
4
 a
 b
于 2013-01-18T09:02:39.383 回答