suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Wie verwende ich js setTimeout in einer doppelten for-Schleife?

Die Zahlen, die nicht im Protokoll abgedruckt sind, nehmen ebenfalls Zeit in Anspruch. Warum und wie lässt sich das Problem lösen?

<script>
function resort(){
    for (let i = 0; i < 10; i++) {
        for (let j = 0; j < 10 - i; j++) {
            setTimeout(function(){
                console.log(i*10 + j);
            },(i*10+j)*500);
        };
    };
}
resort();
</script>
代言代言2818 Tage vor1013

Antworte allen(2)Ich werde antworten

  • 世界只因有你

    世界只因有你2017-06-26 10:56:17

    你想表达什么?

    Antwort
    0
  • 过去多啦不再A梦

    过去多啦不再A梦2017-06-26 10:56:17

    也是和for循环里面的闭包一样吧,在外面包一层立即执行函数

    function resort(){
        for (let i = 0; i < 10; i++) {
            for (let j = 0; j < 10 - i; j++) {
              (function(a,b){
                setTimeout(function(){
                    console.log(a*10 + b);
                },(a*10+b)*500);
              })(i,j)
            };
        };
    }
    resort();

    不知道是不是这意思

    Antwort
    0
  • StornierenAntwort