亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

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

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

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

示例代碼

var a = [1,2,3,4,5,6,7,8]; // 8個(gè)數(shù)
var b = [11,12,13,14,15,3,16,17]; //8個(gè)數(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

可見(jiàn) return 會(huì)直接跳出多層循環(huán),返回調(diào)用的方法外部
原因: js里for是沒(méi)有局部作用域的概念,方法才能一個(gè)局部作用域
return將會(huì)跳出當(dāng)前局部作用繼續(xù)執(zhí)行下面的方法

注意:

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

2.如遇到邏輯特別復(fù)雜多層循環(huán)的時(shí)候,會(huì)遇到一些迭代器之類的方法,
這種迭代器實(shí)現(xiàn)的不同,會(huì)出現(xiàn)另一種情況,即不會(huì)跳出任何循環(huán),
循環(huán)仍然繼續(xù),只是當(dāng)前循環(huán)if后的代碼不會(huì)被執(zhí)行一次,下一次循環(huán)開(kāi)始時(shí),
仍然會(huì)執(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;

語(yǔ)句
break 語(yǔ)句跳出循環(huán)后,會(huì)繼續(xù)執(zhí)行該循環(huán)之后的代碼 (退出循環(huán))
continue continue 語(yǔ)句中斷循環(huán)中的迭代,如果出現(xiàn)了指定的條件,然后繼續(xù)循環(huán)中的下一個(gè)迭代。(跳過(guò)當(dāng)前迭代,進(jìn)入下次迭代)
這兩個(gè)語(yǔ)句可以指定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ì)每次循環(huán)j==2時(shí)退出ddd循環(huán)然后外面的循環(huán)都會(huì)繼續(xù)循環(huán)

相關(guān)文章

最新評(píng)論