Hello Every <BODY>
La demande se faisant sentir sur le forum, je vous livre une fonction permettant le tri aléatoire d'un tableau.
Cela aurait pu être un prototype au Array mais la je vous laisse faire.
L'exemple est fourni avec un tableau de nombre, mais tout tableau fait l'affaire.
Bonne utilisation
;O)
Source / Exemple :
<html>
<head>
<title>Tri aléatoire d'un tableau</title>
<style type="text/css">
body{
font-size : 13px;
font-family : Verdana;
margin : 10px;
}
</style>
<script type="text/javascript">
//-------------------------------
// entree : le tableau a randommer
// sortie : le tableau randomme
//-------------------------------
function Rand_Tableau( tab_){
var i;
var Num;
var Nbr = tab_.length;
var Tab = new Array();
//-- Copie le contenu
Tab = Tab.concat(tab_);
//-- Lance la boucle
while( Nbr> 0){
//-- Recup nombre aleatoire
Num = Math.floor(Math.random() * Nbr);
//-- 1 de moins a traiter
Nbr--;
//-- Stock l'element tire
szTmp = Tab[Num];
//-- Decalage les valeur du tableau
for( i= Num; i < Nbr; i++)
Tab[i] = Tab[i+1]
//-- Stock l'element tire en fin
Tab[ Nbr] = szTmp;
}
//-- On peut remettre dans l'ordre du tirage
Tab.reverse();
//-- Retourne resultat
return( Tab);
}
//------------------
// Just for Test
//------------------
function Fct_Test(){
var Html ="";
var Tab = new Array();
//-- Init du Tableau
for( var i =0; i < 10; i++)
Tab[i] = i;
//-- Random du tableau
Tab = Rand_Tableau( Tab);
//-- Fomattage sortie
for( var i=0; i < Tab.length; i++)
Html += Tab[i] +" "
//-- Affichage resultat
document.getElementById('D_RESULT').innerHTML += "<br>" +Html;
}
</script>
</head>
<body>
<h3>Tri aléatoire d'un tableau</h3>
<input type = "button" value = "Lance" onclick = "Fct_Test();">
<div id = "D_RESULT"></div>
</body>
</html>
Conclusion :
Objet modif 1:
j'ai remis les lignes clearées un peu vite dans la source concernant la copie du contenu du fichier afin que le tableau en entrée ne soit pas modifié.
vous pouvez donc faire un appel
Tab_1 = Ran_Tableau( Tab_0);
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.