Ce chapitre présente comment implémenter une simple fonction de nombre aléatoire à quatre chiffres à travers des exemples de code.
Un moyen relativement simple d'y parvenir consiste à sélectionner au hasard quatre caractères non répétitifs parmi des chiffres et des lettres.
L'exemple de code est le suivant :
function only(ele,arr){ if(arr.length==0){ return true; } for(var j=0;j<arr.length;j++){ if(ele==arr[j]){ return false; }else{ return true; } } } var arr=[0,1,2,3,4,5,6,"a","b","c","d","e","f","g"]; (function(){ var randNum=null; var old=[]; var str=""; function done(){ randNum=Math.floor(Math.random()*14); if(only(randNum,old)){ str=str+arr[randNum]; old.push(randNum); } else{ done(); } } for(var index=0;index<4;index++){ done(); } console.log(str); })(arr)
Le code ci-dessus répond à nos exigences. Présentons le processus d'implémentation du code ci-dessus.
1. Commentaires du code :
1.function uniquement (ele,arr) {}, cette fonction peut déterminer si l'index spécifié a été utilisé et placer des nombres aléatoires pour éviter la duplication.
2.if(arr.length==0){}, si le tableau est vide, cela signifie qu'il n'y a aucune possibilité de duplication et renvoie vrai.
3.for(var j=0;j
6.var randNum=null, déclare une variable et attribue la valeur initiale à null, utilisée pour stocker l'index de tableau généré aléatoirement.
7.var old=[], crée un tableau vide pour stocker les valeurs d'index de tableau déjà apparues.
8.var str="", crée une chaîne vide pour stocker le nombre aléatoire généré.
9.function done(){}, cette fonction peut être utilisée pour obtenir un nombre aléatoire.
10.randNum=Math.floor(Math.random()*14), récupère la valeur d'index du tableau.
11.if(seulement(randNum,old)){
str=str arr[randNum];
vieux.push(randNum);
}, déterminez s'il a été utilisé, sinon, obtenez l'élément du tableau et ajoutez-le à la chaîne str, et enfin ajoutez cette valeur d'index à l'ancien tableau.
12.else{ done();
}, s'il a été utilisé, récupérez-le à nouveau, en utilisant la récursivité ici.
13.for(var index=0;index<4;index ){
fait();
}, utilisez une boucle for pour obtenir 4 nombres aléatoires.
De : http://www.softwhy.com/forum.php?mod=viewthread&tid=16493