Forum de discussion
Forum « Programmation Javascript » (archives)
Re: Affichage aléatoire contrôlé par le biais d'un prototype de ARRAY
Envoyé: 26 novembre 2003, 11h30 par Oznog
Tu peux bien sûr faire un "sort" ou autres méthodes de tableau (array) mais peu importe la méthode, une boucle pour éviter les redondances doit être effectuée. Voilà une méthode qui a le mérite de travailler sur des position (nombre) au lieu des élément. Accélérent le processus mais de toute façon, ce n'est pas très gourmand...
<html>
<head>
<script type="text/javascript" language="javascript">
<!--
// Script gratuit des Trucsweb.com
function twAffTableau(_Tableau) {
// Afficher un tableau 1 dimension
for (i=0; i<_Tableau.length; i++) {
document.write(i+" - ",_Tableau[i],"<br >");
}
}
/////////////////////////////
function twTriAlea() {
// Tri aléatoire un tableau
aTemp = new Array();
aRetour = new Array();
for (a=0; a<this.length; a++) {
aTemp.push(a);
}
for (a=0; a<this.length; a++) {
do {
var randomnumber = Math.random();
var nAlea = Math.round( (aTemp.length-1) * randomnumber) ;
var sElement = aTemp[nAlea];
} while (this[a] == this[sElement] && a != this.length-1);
aTemp.splice(nAlea, 1);
if (this[a] != this[sElement]) {
aRetour.push(this[sElement]);
} else {
aRetour.unshift(this[sElement]);
}
}
return aRetour;
}
// Transforme la fonction en prototype
Array.prototype.twTriAlea = twTriAlea;
/////////////////////////////
// -->
</script>
</head>
<body>
<p>En ordre</p>
<script type="text/javascript" language="javascript">
<!--
// Création du tableau
aTableau = new Array("image1.gif", "image2.gif", "image3.gif", "image4.gif", "image5.gif");
// Afficher le tableau en ordre
twAffTableau(aTableau);
// -->
</script>
<p>Tri Aléatoire</p>
<script type="text/javascript" language="javascript">
<!--
// Trier aléatoirement le tableau
aTest = aTableau.twTriAlea();
// Afficher le tableau trié aléatoirement
twAffTableau(aTest);
// -->
</script>
</html>
Ciao
Oznog