Dans l'environnement jsFiddle, je souhaite créer une boucle qui affiche les numéros 1 à 10 dans un ordre aléatoire, sans répétition.
JsFiddle ici
Entre autres choses, avoir des difficultés avec les variables globales dans l'environnement jsFiddle.
J'apprécierais:
Je vous remercie
Pour la postérité, voici le code de jsFiddle:
HTML:
<div id="response"></div> <input type="button" id="mybutt" value="Get Next" />
Javascript / jQuery:
var cnt; var window.arrDone = []; function nextQues() { return Math.floor(Math.random()*3) + 2; } $('#mybutt').click(function() { cnt++; console.log('Count is now: ' + cnt); if (cnt < 10) { nn = nextQues(); console.log('Testing: ' + nn); if (window.arrDone.indexOf(nn) > -1) { console.log('Already Seen: ' + nn); }else{ console.log('FOUND NEW: ' + nn); window.arrDone.push(nn); } $('#mybutt').trigger('click'); } });
Pour la postérité:
Toute personne qui trébuchait sur cette question tout en recherchant sa propre solution devrait également vérifier cette publication connexe SO:
L'espace de noms javascript est-il pollué?
Essaye ça:
var cnt = 0; var window = {}; window.arrDone = [];
Démonstration ici
Globals in jsfiddle sont les mêmes que dans les sites Web. Bien que le meilleur est d'utiliser no wrap
dans le menu supérieur gauche de jsfiddle, et d'avoir votre propre fonction .ready()
. Sinon, cela enveloppera votre code dans une fonction onload
que vous n'avez pas sur votre site.