mélange des tableaux avec javascript
L'algorithme de shuffle de Fisher-Yates offre une méthode efficace pour les tableaux de mélange dans javascript. En échangeant au hasard des éléments, il garantit que chaque ordre possible a une chance égale de se produire. var j, x, i; pour (i = a.length - 1; i> 0; i--) { j = math.floor (math.random () * (i 1)); x = a [i]; a [i] = a [j]; a [j] = x; } retourner a; }
Cet algorithme itère dans le tableau dans l'ordre inverse, échangeant chaque élément avec un élément aléatoire devant lui dans le tableau. Le tableau résultant est mélangé en raison de la nature aléatoire des swaps.
usage
function shuffle(a) { var j, x, i; for (i = a.length - 1; i > 0; i--) { j = Math.floor(Math.random() * (i 1)); x = a[i]; a[i] = a[j]; a[j] = x; } return a; }
var MyArray = ['1', '2', '3', '4', '5', '6', '7', '8', '9']; shuffle (myArray);
version es6
L'algorithme de Fisher-yates a été optimisé dans es6:
var myArray = ['1','2','3','4','5','6','7','8','9']; shuffle(myArray);
Prototype d'implémentation
Cet algorithme peut être implémenté en tant que méthode prototype de table pour faciliter le mélange direct de Arrays:
function shuffle(a) { for (let i = a.length - 1; i > 0; i--) { const j = Math.floor(Math.random() * (i 1)); [a[i], a[j]] = [a[j], a[i]]; } return a; }
Cette implémentation permet aux tableaux d'être mélangés à l'aide de la syntaxe arr.shuffle ().
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3