国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > JS > 正文

js for終止循環 跳出多層循環

2024-05-06 16:46:17
字體:
來源:轉載
供稿:網友

今天VeVb武林網小編寫帶代碼的時候遇到一段代碼,需要終止運行for,通過遍歷json數據實現判斷

<script>var Tid="55555";var jb51cp = [{id:66666,Cpurl:"https://baidu.com"},{id:55555,Cpurl:"http://m.survivalescaperooms.com"}];  for(var i = 0; i < jb51cp.length; i++){	if(jb51cp[i].id==Tid){	var	thevalue=jb51cp[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/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 阿瓦提县| 蚌埠市| 长春市| 河南省| 陇西县| 贞丰县| 从化市| 拜城县| 荣成市| 墨玉县| 吉安县| 襄城县| 芦溪县| 加查县| 油尖旺区| 修水县| 宜丰县| 葫芦岛市| 高尔夫| 松潘县| 阿尔山市| 长丰县| 成安县| 和政县| 克拉玛依市| 娄烦县| 鹰潭市| 闽侯县| 通江县| 湖南省| 邻水| 古丈县| 遂宁市| 汉中市| 丹寨县| 龙川县| 新源县| 樟树市| 茂名市| 芦山县| 南澳县|