欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

js for終止循環(huán) 跳出多層循環(huán)

 更新時間:2018年10月04日 15:46:56   投稿:mdxy-dxy  
這篇文章主要介紹了js for等循環(huán) 跳出多層循環(huán),終止循環(huán)執(zhí)行的方法,需要的朋友可以參考下

今天腳本之家小編寫帶代碼的時候遇到一段代碼,需要終止運行for,通過遍歷json數(shù)據(jù)實現(xiàn)判斷

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

通過上面的代碼,完美解決了我的需求,但感覺性能不高,建議用switch函數(shù),json方便批量輸出,通過for判斷會降低性能。注意查看break的地方。

示例代碼

var a = [1,2,3,4,5,6,7,8]; // 8個數(shù)
var b = [11,12,13,14,15,3,16,17]; //8個數(shù)

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 會直接跳出多層循環(huán),返回調用的方法外部
原因: js里for是沒有局部作用域的概念,方法才能一個局部作用域
return將會跳出當前局部作用繼續(xù)執(zhí)行下面的方法

注意:

1.這里for循環(huán)如果直接放在全局作用域下執(zhí)行而不被一個方法包裹,
將直接導致寫在for后的代碼永遠不會被執(zhí)行;

2.如遇到邏輯特別復雜多層循環(huán)的時候,會遇到一些迭代器之類的方法,
這種迭代器實現(xiàn)的不同,會出現(xiàn)另一種情況,即不會跳出任何循環(huán),
循環(huán)仍然繼續(xù),只是當前循環(huán)if后的代碼不會被執(zhí)行一次,下一次循環(huán)開始時,
仍然會執(zhí)行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 語句跳出循環(huán)后,會繼續(xù)執(zhí)行該循環(huán)之后的代碼 (退出循環(huán))
continue continue 語句中斷循環(huán)中的迭代,如果出現(xiàn)了指定的條件,然后繼續(xù)循環(huán)中的下一個迭代。(跳過當前迭代,進入下次迭代)
這兩個語句可以指定label從而可以退出特定的循環(huán)

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


或者:
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);
 }
}

// 只會每次循環(huán)j==2時退出ddd循環(huán)然后外面的循環(huán)都會繼續(xù)循環(huán)

相關文章

  • nuxt配置通過指定IP和端口訪問的實現(xiàn)

    nuxt配置通過指定IP和端口訪問的實現(xiàn)

    這篇文章主要介紹了nuxt配置通過指定IP和端口訪問的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-01-01
  • javascript 原型與原型鏈的理解及應用實例分析

    javascript 原型與原型鏈的理解及應用實例分析

    這篇文章主要介紹了javascript 原型與原型鏈的理解及應用,結合實例形式分析了javascript原型與原型鏈的具體原理、功能、使用方法及操作注意事項,需要的朋友可以參考下
    2020-02-02
  • JavaScript實現(xiàn)無窮滾動加載數(shù)據(jù)

    JavaScript實現(xiàn)無窮滾動加載數(shù)據(jù)

    這篇文章主要為大家詳細介紹了JavaScript實現(xiàn)無窮滾動加載數(shù)據(jù),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • 微信小程序實現(xiàn)上傳照片代碼實例解析

    微信小程序實現(xiàn)上傳照片代碼實例解析

    這篇文章主要介紹了微信小程序實現(xiàn)上傳照片代碼實例解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-08-08
  • JavaScript事件Event對象詳解(屬性、方法、自定義事件)

    JavaScript事件Event對象詳解(屬性、方法、自定義事件)

    Event對象代表事件的狀態(tài),比如事件在其中發(fā)生的元素、鍵盤按鍵的狀態(tài)、鼠標的位置、鼠標按鈕的狀態(tài),這篇文章主要給大家介紹了關于JavaScript事件Event對象(屬性、方法、自定義事件)的相關資料,需要的朋友可以參考下
    2024-01-01
  • 如何將JavaScript將數(shù)組轉為樹形結構

    如何將JavaScript將數(shù)組轉為樹形結構

    我們經常會碰到樹形數(shù)據(jù)結構,比方組織層級、省市縣或者者動植物分類等等數(shù)據(jù),那么如何將JavaScript將數(shù)組轉為樹形結構,本文就詳細的來了解一下
    2021-06-06
  • 解析John Resig Simple JavaScript Inheritance代碼

    解析John Resig Simple JavaScript Inheritance代碼

    上網也查了一下對些的理解說的都不是很清楚. 在翻閱的同時找到了一篇 分析這篇文章的文章 哈哈 分析的很詳細. (Join Resig 大師的 "Simple Inheritance" 使用了很多有意思的技巧) 如果你有時間, 并對此感興趣不訪好好看看. 我相信多少會有所收益的.
    2012-12-12
  • IE和Firefox下javascript的兼容寫法小結

    IE和Firefox下javascript的兼容寫法小結

    學習js的朋友必須要知道或了解的知識
    2008-12-12
  • 實現(xiàn)連綴調用的map方法(prototype)

    實現(xiàn)連綴調用的map方法(prototype)

    實現(xiàn)連綴調用的map方法(prototype),需要學習的朋友可以參考下。
    2009-08-08
  • JS創(chuàng)建對象的十種方式總結

    JS創(chuàng)建對象的十種方式總結

    面向對象是一種重要的編程范式,如何靈活的創(chuàng)建對象,是對編程基本功的考驗,本來我們來探討一下JavaScript中創(chuàng)建對象的十種方式,感興趣的小伙伴可以了解下
    2023-10-10

最新評論