如何跳到jQuery.each()util中的下一个迭代?

2020/09/27 09:41 · javascript ·  · 0评论

我正在尝试遍历一系列元素。jQuery的文档说:

jquery.Each()文档

返回非false与for循环中的continue语句相同,它将立即跳至下一个迭代。

我曾尝试称“返回非假”;和“非假”;(无收益),都不会跳到下一个迭代。相反,它们打破了循环。我想念什么?

他们所说的非假是:

return true;

所以这段代码:

var arr = ["one", "two", "three", "four", "five"];
$.each(arr, function(i) {
  if (arr[i] == 'three') {
    return true;
  }
  console.log(arr[i]);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

将记录onetwofourfive

所谓“返回非假”,它们的意思是返回布尔型假不能返回的任何值。所以,你可以返回true1'non-false',或任何其他你能想到的。

Javascript具有“真实性”和“虚假性”的概念。如果变量具有值,则通常为9(如您所见),它具有“真实性”-null,或者没有值趋于“虚假”。以下代码片段可能会有所帮助:

var temp1; 
if ( temp1 )...  // false

var temp2 = true;
if ( temp2 )...  // true

var temp3 = "";
if ( temp3 ).... // false

var temp4 = "hello world";
if ( temp4 )...  // true

希望有帮助吗?

另外,值得从道格拉斯·克罗克福德(Douglas Crockford)看这些视频

更新:感谢@cphpython发现断开的链接-我已更新为指向工作版本

Javascript语言

Javascript-好的部分

不要忘记,有时您可能只是掉到块的末尾而进入下一个迭代:

$(".row").each( function() {
    if ( ! leaveTheLoop ) {
        ... do stuff here ...
    }
});

而不是像这样实际返回:

$(".row").each( function() {
    if ( leaveTheLoop ) 
        return; //go to next iteration in .each()
    ... do stuff here ...
});

当您按原样返回时,循环才会中断false例如:

// this is how jquery calls your function
// notice hard comparison (===) against false
if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {
   break;
}

这意味着您可以返回任何其他内容,包括undefined,如果不返回任何内容,则返回,因此您可以简单地使用空的return语句:

$.each(collection, function (index, item) {
   if (!someTestCondition)
      return; // go to next iteration

   // otherwise do something
});

这可能会因版本而异;这适用于jQuery 1.12.4。但是,实际上,当您退出该函数的底部时,您也不返回任何内容,这就是循环继续的原因,因此我希望没有任何返回的可能不会继续循环。除非他们想迫使大家开始返回的东西,以保持循环下去,什么都不返回要继续下去的方式。

jQuery.noop()可以帮助

$(".row").each( function() {
    if (skipIteration) {
        $.noop()
    }
    else{doSomething}
});
本文地址:http://javascript.askforanswer.com/ruhetiaodaojquery-eachutilzhongdexiayigediedai.html
文章标签: ,   ,  
版权声明:本文为原创文章,版权归 javascript 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!