label的机制-如何跳出双重循环

项目中有时要进行多重循环遍历,考虑到性能的问题,如何及时终止循环,是一个值得考虑的问题,通常的做法是我们声明一个变量,作为循环终止的标识,代码如下:

    var arrObj = [
                    [0,1,2],
                    [3,4,5],
                    [6,7,8],
                    [9,10,11],
                 ];
    for(var i=0;i

打开页面效果如下:

break
  • 可以看到,break只是跳出了内层循环,外层循环依然在进行,假如我们想要内层循环终止的时候,外层循环也终止呢?这可能需要自己来写逻辑,进行终止循环的操作,代码如下:
var arrObj = [
                [0,1,2],
                [3,4,5],
                [6,7,8],
                [9,10,11],
             ];
    //是否终止,默认不终止
    var isBreak=true;
    for(var i=0;i

打开页面效果如下:


终止循环
  • 可以看到,我们自己编写逻辑也能让循环及时终止。但是我们看到控制台打印了index-----3,这说明外层循环的代码还是执行了一次。为了简单起见,思考一下,js语言本身是否给我们提供了某些语法,可以达到我们想要的效果,实际上,js语言提供了语法,只是我们不经常使用而已,偶然看文档发现的惊喜,今天和大家分享一下,那就是js的标记语法label,而不是你想象中的标签。我们先看一下MDN对于label语法的说明及使用方法:
MDN使用说明
  • 我们来测试一下:
var arrObj = [
                [0,1,2],
                [3,4,5],
                [6,7,8],
                [9,10,11],
             ];
    //外层标记
    loop1:
    for(var i=0;i

页面效果如下:

label语法

可以看到,通过这种js自带的语法,可以轻松实现跳出某一代码快的操作,执行的逻辑,也不会像我们自己写的那样,会多执行一步。了解了js的这个语法特性,在性能方面,会有极大的提升。

你可能感兴趣的:(label的机制-如何跳出双重循环)