js 对于jquery each 多层循环的问题和原生js多层循环问题

时间:2023-03-09 13:37:31
js 对于jquery each 多层循环的问题和原生js多层循环问题

一、在jquery中,我们使用循环的时候,提供两种方式:jquery.each 和(循环体).each  两种方式不是同。

对于return 在作用这两个的函数的时候需要注意:

首先我们需要知道我们的each循环内的都是匿名函数。但是遇到不同的return值,结果是不一样的。

1)jqury.each:我们在调用的时候,如果return false 退出循环体。

js 对于jquery each 多层循环的问题和原生js多层循环问题

         var a=[[,],[,]]
function test(){
$.each(a,function(i,v){
$.each(v,function(o,p){
if(p===){
return false;
}
console.log(p); })
})
}

无返回值。如果我们返回true的时候,

js 对于jquery each 多层循环的问题和原生js多层循环问题

2)(循环体).each(function(){})如果返回false的时候,调出循环体:

js 对于jquery each 多层循环的问题和原生js多层循环问题

3)在正常的情况下,我们在使用原生的for循环的时候,不会出现上面情况,原生for循环没有匿名函数。

         function test(){
for(var i=;i<a.length;i++){ for (var j=;j<a.length;j++){ console.log(a[i][j])
if(i==){
return true;
}
}
} } test()

二、在原生js中,我们进行多层循环的时候,跳出循环我们可以使用continue和break。有时候需要和label语句配合起来使用。

1、lable语句:

lable标签:statement

 <!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<script type="text/javascript">
function lableTest(argument) {
var num=;
outer:
for(var i=;i<;i++){
for (var j=;j<;j++){
if(i===&&j===){
break outer;
}
num++
}
}
alert(num);
}
lableTest();
</script>
</body>
</html>

使用 “break 标签名字“    跳出循环,跳出指定的标签的循环。

 <!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<script type="text/javascript">
function lableTest(argument) {
var num=; for(var i=;i<;i++){
outer:
for (var j=;j<;j++){
if(i===&&j===){
break outer;
}
num++
}
}
alert(num);
}
lableTest();
</script>
</body>
</html>

continue 也是如此,我们一般在使用标签和break、continue 配合使用,一般在嵌套循环使用。