Javascript 创建一个反复循环的for循环=
所以我有一个奇怪的问题(因为我可以使用伪代码来实现,但无法在实际代码中实现)—— 这个概念很简单-我需要一个for循环,当达到其最大“I”数时,它会再次将“I”还原为0,并反复创建一个循环- 虚拟代码:Javascript 创建一个反复循环的for循环=,javascript,arrays,loops,Javascript,Arrays,Loops,所以我有一个奇怪的问题(因为我可以使用伪代码来实现,但无法在实际代码中实现)—— 这个概念很简单-我需要一个for循环,当达到其最大“I”数时,它会再次将“I”还原为0,并反复创建一个循环- 虚拟代码: for(i=0;i<10;i++){ console.log(i); if(i === 10){ i = 0 } } (i=0;i)的{ e、 id=i }) //获取要在页面上填充的元素 var name=document.querySelector('p.name'); 变量日期=d
for(i=0;i<10;i++){
console.log(i);
if(i === 10){
i = 0
}
}
(i=0;i)的{
e、 id=i
})
//获取要在页面上填充的元素
var name=document.querySelector('p.name');
变量日期=document.querySelector('p.date');
var评级=document.querySelector('.rating_stars');
var review=document.querySelector(“p.review\u content\u text”);
//反转数组-首先显示最新的评论(这取决于评论下载的位置)
var reviewBack=reviews.slice(0.reverse();
//启动循环-遍历每个数组-获取其详细信息并将其应用于元素
/**
*这就是我想永远重复的
*
* **/
for(设i=0;i>>>>>>
好的,所以我找到了一个黑客和斜杠的方式来解决这个问题-但它不是干代码和不好的代码,但它的工作
这可能会使退浆效果更容易理解
reviewF(); // <<< this is the init function
// this init2 function for the reviews waits until the reviews have run then
// calls it again
setTimeout(function(){
reviewF();
}, reviews.length*1000)
// this version of the innit doubles the number of reviews and calls it after that amount of time
setTimeout(function(){
reviewF();
}, (reviews.length*2)*1000)
reviewF();//为什么不简单地将这个for循环嵌套在
var循环=真
做{
对于(i=0;i我认为重置循环就像在伪代码中设置“i=0”一样简单。因此,请尝试在for循环末尾的代码中输入以下内容:
if(i === 10){
i = 0;
}
嗨,凯尔-谢谢你的回复-这是我已经尝试过但不起作用的东西,我相信可能是由于代码块的原因?谢谢你的建议我真的不太确定。你可以尝试移除头部的所有部分:因此它将是“for(;;){//code here}”。我认为这会使循环无限。嗨,凯尔-我相信从我所读的内容来看,这会使循环无限,但这样就无法知道你在哪个数组项上,并且一旦点击array.item.length,就可以再次将循环重置为0并重新开始。如果你有更多关于实现这一点的信息,那将是令人惊讶的,我们是ba再次检查if语句,您是否尝试将if语句放置在循环中的不同位置?对我来说,最明显的地方似乎是注释“/”应该创建一个无限循环。您也可以尝试“if(i===array.item.length){i=0;},但除此之外,恐怕我没有主意了,对不起!嗨,凯尔-在对上面的代码(不是伪代码)进行了一些挖掘之后,这似乎不是当前的问题-可能函数正在运行,并且可以在无限循环上运行,但是由于setTimeout函数在代码的其余部分之后运行,因此存在延迟-现在我试图使一个函数在循环或函数再次运行之前进入运行状态(为什么要费心处理变量?如前所述,一个带有中断
的简单无限循环将以相同的方式工作。它完全可以工作。有时在更深的条件嵌套中,变量可以帮助我识别我正在中断的循环。在您的虚拟代码中,for(i=0;iHi Shadow-这是正确的,是的-在实际代码中应该是/但是这是基于一个变量的,该变量是向后运行的数组的长度(这是由于数组长度随时间而变化),因此(i=0;i您的循环没有向后运行。循环只会在循环条件失败和循环退出之前的瞬间将i
设置为数组长度。至于setTimeout
从未执行的原因,看起来您从未释放过对事件循环的控制;JavaScript没有线程化,setTimeout
无法执行NL除非运行的代码结束或以其他方式将控制权返回到事件循环(使用await
,Promise
相关内容等).HI Shadow-我已经对您所说的进行了一些调试-我认为我对这段代码采取的方法是错误的,或者问题对于所需的解决方案是错误的-相反-如何使上述函数在再次运行之前完整地运行-我只是用setTimeOut()尝试了一下但这并不成功——任何投入都会很好
var looping = True
do {
for(i=0;i<10;i++){
console.log(i);
}
if (someEndCondition) {
looping = False;
}
}
while (looping);
if(i === 10){
i = 0;
}