js for终止循环 跳出多层循环


Posted in Javascript onOctober 04, 2018

今天三水点靠木小编写带代码的时候遇到一段代码,需要终止运行for,通过遍历json数据实现判断

<script>
var Tid="55555";
var 3watercp = [
{id:66666,Cpurl:"https://baidu.com"},
{id:55555,Cpurl:"https://3water.com"}
];
 
 
for(var i = 0; i < 3watercp.length; i++){
	if(3watercp[i].id==Tid){
	var	thevalue=3watercp[i].Cpurl;
	break;
		}
}
alert(thevalue);
</script>

通过上面的代码,完美解决了我的需求,但感觉性能不高,建议用switch函数,json方便批量输出,通过for判断会降低性能。注意查看break的地方。

示例代码

var a = [1,2,3,4,5,6,7,8]; // 8个数
var b = [11,12,13,14,15,3,16,17]; //8个数

testFor();
console.log('555')

function testFor() {
 for(var k=0;k<a.length;k++){
 console.log('444');
 for(var i=0;i<a.length;i++){
  for(var j=0;j<b.length;j++){
  if( a[i]==b[j] ){
   return false;
  }
  console.log('111');
  }
  console.log('2222');
 }
 console.log('333');
 }
}


输出:
// 1次444
// 8次111
// 1次222
// 8次111
// 1次222
// 5次111
// 1次555

可见 return 会直接跳出多层循环,返回调用的方法外部
原因: js里for是没有局部作用域的概念,方法才能一个局部作用域
return将会跳出当前局部作用继续执行下面的方法

注意:

1.这里for循环如果直接放在全局作用域下执行而不被一个方法包裹,
将直接导致写在for后的代码永远不会被执行;

2.如遇到逻辑特别复杂多层循环的时候,会遇到一些迭代器之类的方法,
这种迭代器实现的不同,会出现另一种情况,即不会跳出任何循环,
循环仍然继续,只是当前循环if后的代码不会被执行一次,下一次循环开始时,
仍然会执行if后的代码

如:

var cc = 'xx';

Object.keys(o).forEach(function(key) {
var val = o[key];
if(cc == key){
return false;
}
console.log(key);
});

此外还有

break;
continue;

语句
break 语句跳出循环后,会继续执行该循环之后的代码 (退出循环)
continue continue 语句中断循环中的迭代,如果出现了指定的条件,然后继续循环中的下一个迭代。(跳过当前迭代,进入下次迭代)
这两个语句可以指定label从而可以退出特定的循环

bbq:
for(var j=0;j<a.length;j++){
 ccc:
 for(var i =0;i<a.length;i++){
  if( i==5 ){
   break bbq; //直接跳出bbq外层循环
  }
 }
}


或者:
function testFor() {
 bbq:
 for(var k=0;k<a.length;k++){
  console.log('444');
  ccc:
  for(var i=0;i<a.length;i++){
   ddd:
   for(var j=0;j<b.length;j++){
    if(j == 2){
     break;
    }
    console.log('j '+j);
   }
   console.log('i '+i);
  }
  console.log('k '+k);
 }
}

// 只会每次循环j==2时退出ddd循环然后外面的循环都会继续循环

Javascript 相关文章推荐
基于jquery的跨域调用文件
Nov 19 Javascript
Javascript 垃圾收集机制介绍理解
May 14 Javascript
Bootstrap每天必学之导航
Nov 26 Javascript
jquery分隔Url的param方法(推荐)
May 25 Javascript
巧用jQuery选择器提高写表单效率的方法
Aug 19 Javascript
JavaScript-html标题滚动效果的简单实现
Sep 08 Javascript
js文件中直接alert()中文出来的是乱码的解决方法
Nov 01 Javascript
JS跨域请求外部服务器的资源
Feb 06 Javascript
简单谈谈axios中的get,post方法
Jun 25 Javascript
JavaScript简单实现合并两个Json对象的方法示例
Oct 16 Javascript
Vue 让元素抖动/摆动起来的实现代码
May 31 Javascript
vue实现权限控制路由(vue-router 动态添加路由)
Nov 04 Javascript
iView-admin 动态路由问题的解决方法
Oct 03 #Javascript
Angular resolve基础用法详解
Oct 03 #Javascript
解决angularjs service中依赖注入$scope报错的问题
Oct 02 #Javascript
angular.js实现列表orderby排序的方法
Oct 02 #Javascript
Angularjs实现数组随机排序的方法
Oct 02 #Javascript
解决angular双向绑定无效果,ng-model不能正常显示的问题
Oct 02 #Javascript
angularjs获取到My97DatePicker选中的值方法
Oct 02 #Javascript
You might like
浅析php变量修饰符static的使用
2013/06/28 PHP
PHP数据源架构模式之表入口模式实例分析
2020/01/23 PHP
Track Image Loading效果代码分析
2007/08/13 Javascript
JQUERY THICKBOX弹出层插件
2008/08/30 Javascript
Javascript类定义语法,私有成员、受保护成员、静态成员等介绍
2011/12/08 Javascript
深入理解JavaScript系列(1) 编写高质量JavaScript代码的基本要点
2012/01/15 Javascript
使用jQuery validate 验证注册表单实例演示
2013/03/25 Javascript
JS获取浏览器语言动态加载JS文件示例代码
2014/10/31 Javascript
javascript中alert()与console.log()的区别
2015/08/26 Javascript
JavaScript如何实现在文本框(密码框)输入提示语
2015/12/25 Javascript
nodejs个人博客开发第五步 分配数据
2017/04/12 NodeJs
小程序登录态管理的方法示例
2018/11/13 Javascript
Vue2.X和Vue3.0数据响应原理变化的区别
2019/11/07 Javascript
Vue双向绑定实现原理与方法详解
2020/05/07 Javascript
浏览器JavaScript调试功能无法使用解决方案
2020/09/18 Javascript
基于ant design日期控件使用_仅月份的操作
2020/10/27 Javascript
pycharm 使用心得(一)安装和首次使用
2014/06/05 Python
Python中用format函数格式化字符串的用法
2015/04/08 Python
详解Python中 __get__和__getattr__和__getattribute__的区别
2016/06/16 Python
python 用opencv调用训练好的模型进行识别的方法
2018/12/07 Python
django基于cors解决跨域请求问题详解
2019/08/06 Python
利用pytorch实现对CIFAR-10数据集的分类
2020/01/14 Python
python3操作注册表的方法(Url protocol)
2020/02/05 Python
pytorch中的weight-initilzation用法
2020/06/24 Python
澳大利亚便宜的家庭购物网站:CrazySales
2018/02/06 全球购物
美国最受欢迎的度假目的地优惠套餐:BookVIP
2018/09/27 全球购物
C#中有没有运算符重载?能否使用指针?
2014/05/05 面试题
应届生幼儿园求职信
2013/11/12 职场文书
《悯农》教学反思
2014/04/28 职场文书
员工安全承诺书
2014/05/22 职场文书
小学雷锋月活动总结
2014/07/03 职场文书
超市创意活动方案
2014/08/15 职场文书
企业总经理助理岗位职责
2014/09/12 职场文书
乡镇遵守党的政治纪律情况对照检查材料
2014/09/26 职场文书
先进个人推荐材料
2014/12/29 职场文书
师德承诺书2015
2015/04/28 职场文书