label语句:可以在代码中添加标签,以便将来使用。

  语法:label : statement

  示例:

start:
for(var i=0;i<10;i++){
console.log(i);
};

  示例扩展:

start:
for(var i=0;i<10;i++){
console.log(i);
for(var j=0;j<5;j++){
console.log('j'+j);
if(i>5){
// break; //只终止了最近的一个循环,上一个循环未终止
break start; //全部终止了 }
}
};

应用场景:

var itemsId = [1,3];
var all = [[{id:1,name:hehe},{id:3,name:hehe}],[{id:2,name:hehe},{id:4,name:hehe}]];
//我们有上边两个数组,itemsId是id数组,all是一个二维数组,其中的元素是,按照id的奇偶进行区分放置的,项目的对象。现在我们希望找到每个items中id对应的对象,这时候就要多重循环来查找:
for(var i=0;i<itemsId.length;i++){
for(var j=0;j<all.length;j++){
for(var k=0;k<all[j].length;k++){
if( all[j][k].id == itemsId[i] ){
console.log(all[j][k]);
break;
}
}
}
}
//这时候我们会发现,当我们找到合适的对象之后,使用break只能跳出最内层的k循环,而j循环会继续执行下去。就产生了许多没必要的循环。我们希望,当找到之后,直接跳到j循环外,从下一个id开始查找。此时,就要用到label了。代码如下:
for(var i=0;i<itemsId.length;i++){
outPoint:
for(var j=0;j<all.length;j++){
for(var k=0;k<all[j].length;k++){
if( all[j][k].id == itemsId[i] ){
console.log(all[j][k]);
break outPoint;
}
}
}
}
//这样,在all[j][k].id == itemsId[i]的时候,就会跳出到outPoint的位置,直接跳出两个循环,从下一个id开始查找。少循环了许多次。

最新文章

  1. AlloyRenderingEngine文本框组件
  2. 基于Simple Image Statistics(简单图像统计,SIS)的图像二值化算法。
  3. Log4j配置说明及样例
  4. Logback常用配置详解
  5. JSON和XML:不可同日而语
  6. Python文本处理(1)
  7. OCA读书笔记(18) - 使用Support工具
  8. Winform常用开发模式第一篇
  9. 什么是JDBC?
  10. ID3决策树预测的java实现
  11. 小程序首页onLoad为异步,调用app.js中的全局参数的解决方案。
  12. Python——pip安装报错:is not a supported wheel on this platform
  13. Linux下的redis的持久化,主从同步及哨兵
  14. Spring Data JPA例子[基于Spring Boot、Mysql]
  15. mysql5.7配置文件优化
  16. Linux 从网卡到TCP IP协议栈数据流跟踪与审计
  17. 解决 Mac 的 Terminal 中,Java 乱码的问题
  18. jQuery插件初级练习1
  19. underscore.js源码研究(3)
  20. Linux学习笔记:mkdir创建文件夹

热门文章

  1. Centos7下搭建LAMP环境,安装wordpress(不会生产博客,只是一名博客搬运工)(菜鸟)
  2. 【UML】NO.52.EBook.5.UML.1.012-【UML 大战需求分析】- 交互概览图(Interaction Overview Diagram)
  3. Linux下安装jieba
  4. python 中为什么不需要重载 参数*arg和**args
  5. 深入理解Java虚拟机4-chap6-斗者1星
  6. python进阶(一) 多进程并发机制
  7. 与图论的邂逅01:树的直径&amp;基环树&amp;单调队列
  8. fiddler学习总结--手机端(APP/微信小程序)抓包
  9. Linux下的.txt文件复制到win下面不自动换行
  10. centos7.5 修改网卡名称