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返回值,简单粗暴,大家都能看明白,简直不要太好,哈哈
Javascript中快速退出多重循环的技巧的更多相关文章
- 【前端】javascript中10常用的个小技巧总结
javascript中10常用的个小技巧总结 本文转自:http://www.cnblogs.com/libin-1/p/6756393.html 1. new Set() 可能有人知道ES6中提供了 ...
- python退出多重循环
假设一段python程序有多重循环,我们都知道在一个循环当中,用break是退出当前的循环,然后继续下一次循环,但是如何才能跳出多重循环呢,实际就是结束所有的循环. 思路1::可以定义一个异常类,在需 ...
- JavaScript 中的12种循环遍历方法
原文:JavaScript 中的12种循环遍历方法 题目:请介绍 JavaScript 中有哪些循环和遍历的方法,说说它们的应用场景和优缺点? 1.for 循环 let arr = [1,2,3];f ...
- C#游戏开发中快速的游戏循环
C#游戏开发中快速的游戏循环的实现.参考<精通C#游戏编程>一书. using System; using System.Collections.Generic; using System ...
- jquery中如何退出each循环
在for循环中我们用continue退出当前循环,进入下一循环.用break跳出所有循环. 可是在jQuery中却并没有这两条命令,那么如何退出each循环呢? 经过查询得知: 在jQuery中用 r ...
- 理解 JavaScript 中的 for…of 循环
什么是 for…of 循环 for...of 语句创建一个循环来迭代可迭代的对象.在 ES6 中引入的 for...of 循环,以替代 for...in 和 forEach() ,并支持新的迭代协议. ...
- JavaScript中的for in循环
在学习AJAX的时候,发现JavaScript中for in循环,这种循环对于遍历JSON是很好用的.于是写下了这篇博文 作用 for in循环本质上是forEach循环,它主要有两个作用 遍历数组 ...
- javascript中的for in循环和for in循环的使用陷阱
javascript中的for循环和for...in循环还是有些区别的,比如定义一个数组,然后用for..in循环输出 var array=[1,2,3,4,5,6]; for(var s in ar ...
- 好文:javascript中的四种循环
https://juejin.im/entry/5a1654e951882554b8373622?utm_medium=hao.caibaojian.com&utm_source=hao.ca ...
随机推荐
- Tpcc-MySQL对mysql数据库进行性能测试报告、分析及使用gnuplot生成图表展示
TPC-C是专门针对联机交易处理系统(OLTP系统)的规范,一般情况下我们也把这类系统称为业务处理系统. tpcc-mysql是percona基于TPC-C(下面简写成TPCC)衍生出来的产品,专用于 ...
- HTTP基础知识1
HTTP 简介 HTTP协议(HyperText Transfer Protocol,超文本传输协议)是因特网上应用最为广泛的一种网络传输协议,所有的WWW文件都必须遵守这个标准,它是基于TCP/IP ...
- Ex 6_17 数量无限的硬币兑换问题_第七次作业
子问题定义:定义一个数组b,大小比兑换价格的大小多一个元素,其中b[i]表示是否能用面值为x1,x2,x3,..,xn的硬币兑换价格i. 递归关系: 初值设定:设b[0]=true 求解顺序:按下标从 ...
- PYTHON-TCP 粘包
1.TCP的模板代码 收发消息的循环 通讯循环 不断的连接客户端循环 连接循环 判断 用于判断客户端异常退出(抛异常)或close(死循环) 半连接池backlog listen(5) 占用的是内存空 ...
- PYTHON-模块 sys os random shutil-练习
# 作业:# 添加工程根目录至环境变量 要求可以跨平台# import sys,os# BATH_DIR=os.path.dirname(os.path.dirname(__file__))# sys ...
- C# winform(计算器)
- js有关事件驱动
事件驱动 /* 什么是事件? 1.事件发生了 2.我要对这个事件做对应的处理 ...
- this和判断的位置对赋值的要求
package charter01; public class Person { private String name; private int age; public String getName ...
- 二.hadoop环境搭建
目录: 目录见文章1 文章:官方文档hadoop2.7.4 目的 这篇文档的目的是帮助你快速完成单机上的Hadoop安装与使用以便你对Hadoop分布式文件系统(HDFS)和Map-Reduce框架有 ...
- Windows C#入门环境搭建
Windows C#入门环境搭建 1. 安装Microsoft .NET Framework目录: C:\Windows\Microsoft.NET\Framework,查看已经安装的版本. 如果未安 ...