>> 19 20 次。为了使 i 保持在它的迭代值,我使用了一个闭包: for(var i=0; -6ren">
gpt4 book ai didi

javascript - 在循环中获取值的更好方法

转载 作者:数据小太阳 更新时间:2023-10-29 05:26:59 25 4
gpt4 key购买 nike

for( var i=0; i<20; i++) 
setTimeout(function(){
console.log(">>> "+i);
}, i*100);

所以,上面的代码输出 >>> 19 20 次。为了使 i 保持在它的迭代值,我使用了一个闭包:

for(var i=0; i<20; i++)(function(i){
setTimeout(function(){
console.log(">>> "+i);
}, i*100);
}(i));

有什么问题?问题是循环控制语句,continue; 我可以使用 return; 但对于那些我需要 break; 的时候,代码变得违反直觉当其他人试图阅读它时。

那我该怎么办呢?

最佳答案

这个怎么样?

for (var i = 0; i < 20; i++) {
var action = (function(i){
setTimeout(function(){
console.log(">>> "+i);
}, i*100);

// break => return false
// continue => return anything (e.g. true)
// default => return nothing
return false;
})(i);

if (action !== undefined) {
if (!action) {
break;
}
else {
continue;
}
}
}

编辑:
添加了对 continue 语句的“支持”。这在某种程度上类似于 jQuery.each() 循环。

关于javascript - 在循环中获取值的更好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11571318/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com