2013-09-06 3 views
0

Je veux créer un petit outil pour aider à visualiser les boucles for imbriquées. L'outil ressemblerait à quelque chose comme ça, mais avec plusieurs rangées de cercles:JavaScript pour les boucles et les intervalles entre les incréments

http://jsfiddle.net/ZkLTX/

var sequenceTrack1 = [1, 2, 3, 4]; 

//START TRACK1 Code// 
var counterTrackOne = 0; 

function iterateTrackOne() { 
    if (sequenceTrack1.length > counterTrackOne) { 
     counterTrackOne++; 
     $("#track1_Step" + [counterTrackOne]).effect("highlight", { 
      color: "#749CD5" 
     }); 

     setTimeout(iterateTrackOne, 1000); 
     if (counterTrackOne === sequenceTrack1.length) { 
      counterTrackOne = 0; 
     } 
    } 

}; 
iterateTrackOne(); 

Cependant, lorsque je l'ai écrit le code ci-dessus, je n'ai pas utilisé pour boucles et je voudrais factoriser comme tel. Ma première étape consiste simplement à utiliser une boucle for pour exécuter un message de consignation de la console à intervalles réguliers. Je ne sais pas comment faire cela.

+0

votre idée ne correspond pas parfaitement dans le paradigme Procesing axé sur les événements js. Essayez plutôt de configurer un temporisateur d'intervalle (exemple: 'var handle = setInterval (fonction() {console.log (" quelquechose ");}, 1000);' qui sort un message toutes les secondes, termine le gestionnaire en utilisant 'clearInterval (handle); '). – collapsar

Répondre

0

Je ne suis pas votre code à 100%, mais est-ce ce que vous voulez faire?

Je ne sais pas si vous avez l'intention de répéter indéfiniment. Je suppose que vous ne voulez que répéter une fois, puisque le nom de votre fonction le dit.

Voilà ma fourchette: http://jsfiddle.net/5jNXv/2/

var sequenceTrack1 = [1, 2, 3, 4]; 

//START TRACK1 Code// 

for (var i = 0, l = sequenceTrack1.length; i < l; i++) { 
    setTimeout((function (i) { 
     return function() { 
      $("#track1_Step" + sequenceTrack1[i]).effect("highlight", { 
       color: "#749CD5" 
      }); 
     }; 
    })(i), 1000 * i); 
} 
+0

Cela fonctionne mais c'est un peu plus laide que ce que j'avais espéré. J'avais l'intention d'avoir imbriqué pour les boucles et la sortie d'une manière qui aide à démontrer les relations entre eux. – William