JavaScript中的label语句,及应用
2024-09-26 06:47:07
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开始查找。少循环了许多次。
最新文章
- AlloyRenderingEngine文本框组件
- 基于Simple Image Statistics(简单图像统计,SIS)的图像二值化算法。
- Log4j配置说明及样例
- Logback常用配置详解
- JSON和XML:不可同日而语
- Python文本处理(1)
- OCA读书笔记(18) - 使用Support工具
- Winform常用开发模式第一篇
- 什么是JDBC?
- ID3决策树预测的java实现
- 小程序首页onLoad为异步,调用app.js中的全局参数的解决方案。
- Python——pip安装报错:is not a supported wheel on this platform
- Linux下的redis的持久化,主从同步及哨兵
- Spring Data JPA例子[基于Spring Boot、Mysql]
- mysql5.7配置文件优化
- Linux 从网卡到TCP IP协议栈数据流跟踪与审计
- 解决 Mac 的 Terminal 中,Java 乱码的问题
- jQuery插件初级练习1
- underscore.js源码研究(3)
- Linux学习笔记:mkdir创建文件夹
热门文章
- Centos7下搭建LAMP环境,安装wordpress(不会生产博客,只是一名博客搬运工)(菜鸟)
- 【UML】NO.52.EBook.5.UML.1.012-【UML 大战需求分析】- 交互概览图(Interaction Overview Diagram)
- Linux下安装jieba
- python 中为什么不需要重载 参数*arg和**args
- 深入理解Java虚拟机4-chap6-斗者1星
- python进阶(一) 多进程并发机制
- 与图论的邂逅01:树的直径&;基环树&;单调队列
- fiddler学习总结--手机端(APP/微信小程序)抓包
- Linux下的.txt文件复制到win下面不自动换行
- centos7.5 修改网卡名称