zoukankan      html  css  js  c++  java
  • Javascript中快速退出多重循环的技巧

    在双重循环或多重循环中判断条件,条件符合时跳出整个嵌套循环体是常见的程序逻辑。在Javascript中有哪些跳出的方法呢?楼主简单整理了一下。

    一. 使用多个break语句跳出

    var breaked = false;
    for (var i = 0; i < 3; i++) {
        for (var j = 0; j < 3; j++) {
            if (i === 1 && j === 1) {
                breaked = true;
                break;
            }
            console.log('i=' + i + ',j=' + j);
        }
        if (breaked) {
            break;
        }
    }

    这是比较常见的跳出方法,双重循环的时候还可以接受,一旦循环的次数多了break语句会反复出现,代码阅读起来并不是很友好。

    二. 使用break+label的形式跳出

    loop:
    for (var i = 0; i < 3; i++) {
        for (var j = 0; j < 3; j++) {
            if (i === 1 && j === 1) {
                break loop;
            }
            console.log('i=' + i + ',j=' + j);
        }
    }

    Javascript中是不能使用goto语句的,但是label可以和break、continue语句联合使用。在最外层的循环之外打上自定义标签,并在break时使用,就可以退出最外层循环了。当然,label这种汇编语言时期的上古遗迹是不被推荐使用的,在大一的C语言课上老师就教导我们这样的编程习惯会打断人的结构性思维等等…而且同事阅读起来也会很别扭。

    三. 使用iife + return

    (function () {
        for (var i = 0; i < 3; i++) {
            for (var j = 0; j < 3; j++) {
                if (i === 1 && j === 1) {
                    return;
                }
                console.log('i=' + i + ',j=' + j);
            }
        }
    })();

    在循环体外包一层函数,想退出就退出,还能return返回值,简单粗暴,大家都能看明白,简直不要太好,哈哈

  • 相关阅读:
    e3.tree参考手册
    fckeditor使用详解
    提示constructor无法location的原因
    无限联动下拉框使用步骤
    动态sql构建的过程
    xsqlbuilder使用说明
    处理date类型对象的方式
    wdatepicker使用指南
    How to reclaim space in InnoDB when innodb_file_per_table is ON
    Bash script: report largest InnoDB files
  • 原文地址:https://www.cnblogs.com/front-end-ralph/p/6500829.html
Copyright © 2011-2022 走看看