我试图在每次迭代中实现一个带延迟的嵌套for循环。
到目前为止,我已经想出了类似的东西
var maxLoops = 10 ;
var counter = 0;
var counter2 = counter;
var maxLoops = 10 ;
var counter = 0;
var counter2 = counter;
(function nNext() {
if (counter == maxLoops) return
counter2 = counter - 1;
setTimeout(() => (function next() {
if (counter2 >= maxLoops) return;
setTimeout(() => {
console.log( "Nester counter :" + counter2);
counter2++
next()
}, 100)
})(), 1)
counter++;
nNext();
})();
然而它并没有正常运作。我试图做一个冒泡排序的直观表示,我需要这个延迟,以便看到每个步骤,如果阵列立即排序没有这种延迟是不可能的。实际上可以实现这样的事情吗?或者也许有更好的方法来做到这一点?
答案 0 :(得分:0)
你得到的结构似乎有点复杂,这应该可以实现你想要的东西:
var maxLoops = 10,
counter = 0,
counter2 = 0;
function outerNext() {
if (counter == maxLoops) return;
counter2 = counter - 1
innerNext()
}
function innerNext() {
if (counter2 >= maxLoops) {
outerNext()
}
else {
counter2++;
console.log("Nester counter :" + counter2);
setTimeout(innerNext, 500)
}
}
outerNext()