js 對於jquery each 多層循環的問題和原生js多層循環問題


一、在jquery中,我們使用循環的時候,提供兩種方式:jquery.each 和(循環體).each  兩種方式不是同。

對於return 在作用這兩個的函數的時候需要注意:

首先我們需要知道我們的each循環內的都是匿名函數。但是遇到不同的return值,結果是不一樣的。

1)jqury.each:我們在調用的時候,如果return false 退出循環體。

 1         var a=[[2,1],[2,3]]
 2         function test(){
 3             $.each(a,function(i,v){
 4                 $.each(v,function(o,p){
 5                     if(p===2){
 6                         return false;
 7                     }
 8                     console.log(p);
 9                     
10                 })
11             })
12         }

 無返回值。如果我們返回true的時候,

2)(循環體).each(function(){})如果返回false的時候,調出循環體:

3)在正常的情況下,我們在使用原生的for循環的時候,不會出現上面情況,原生for循環沒有匿名函數。

 1         function test(){
 2             for(var i=0;i<a.length;i++){
 3     
 4                 for (var j=0;j<a.length;j++){
 5         
 6                     console.log(a[i][j])
 7                     if(i==0){
 8                         return true;
 9                     }    
10                 }
11             }
12 
13         }
14 
15         test()

 二、在原生js中,我們進行多層循環的時候,跳出循環我們可以使用continue和break。有時候需要和label語句配合起來使用。

1、lable語句:

lable標簽:statement

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4     <title></title>
 5 </head>
 6 <body>
 7 <script type="text/javascript">
 8     function lableTest(argument) {
 9         var num=0;
10         outer:
11         for(var i=0;i<10;i++){
12             for (var j=0;j<10;j++){
13                 if(i===5&&j===5){
14                     break outer;
15                 }
16                 num++
17             }
18         }
19         alert(num);
20     }
21     lableTest();
22 </script>
23 </body>
24 </html>

 

使用 “break 標簽名字“    跳出循環,跳出指定的標簽的循環。

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4     <title></title>
 5 </head>
 6 <body>
 7 <script type="text/javascript">
 8     function lableTest(argument) {
 9         var num=0;
10         
11         for(var i=0;i<10;i++){
12             outer:
13             for (var j=0;j<10;j++){
14                 if(i===5&&j===5){
15                     break outer;
16                 }
17                 num++
18             }
19         }
20         alert(num);
21     }
22     lableTest();
23 </script>
24 </body>
25 </html>

 

continue 也是如此,我們一般在使用標簽和break、continue 配合使用,一般在嵌套循環使用。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM