Il existe de nombreuses façons de mélanger un tableau en javascript, et vos critères de mélange doivent toujours relever de l’efficacité et du caractère aléatoire lors du choix d’une solution. Ici, nous allons vous proposer deux solutions, la méthode Fisher-Yates et le tri one-liner. Les deux solutions ont leurs propres avantages et inconvénients, il vous appartiendra donc de décider quelle méthode correspond le mieux à votre projet. Voici comment mélanger un tableau en Javascript.

Solution 1 : mélange de tableaux de Fisher-Yates

let array = ['a','b','c','d','e']

function FisherShuffle(temp) {
  let i = temp.length;
  while (--i > 0) {
    let randIndex = Math.floor(Math.random() * (i + 1));
    [temp[randIndex], temp[i]] = [temp[i], temp[randIndex]];
  }
  return temp;
}

Une solution populaire de mélange de tableaux en Javascript est la Mélange Fisher-Yates. Le concept ici est simple :

  1. Commencez à la fin de votre tableau.
  2. Choisissez un index aléatoire dans votre tableau
  3. Échangez les deux valeurs
  4. Répétez votre tableau jusqu’à ce que tous les index soient permutés.

Cette méthode vous fournira un grand caractère aléatoire, et bien qu’elle soit relativement efficace, ses performances seront affectées par la taille du tableau. Parce que nous devons écrire un peu de code pour effectuer le shuffle, il est préférable de placer l’algorithme dans une fonction réutilisable, de préférence dans un fichier utilitaire que vous pouvez appeler dans différentes parties de votre projet.

Le shuffle Fisher-Yates a été décrit pour la première fois en 1938 et porte le nom de ses créateurs, Ronald Fisher et Frank Yates. Il est aussi parfois appelé le shuffle de Knuth.

Solution 2 : trier une doublure

let array = ['a','b','c','d','e']
let shuffled = array.sort( () => .5 - Math.random() )

Beaucoup de gens aiment cette solution pour sa propreté et sa simplicité. Cependant, il présente des inconvénients importants. Ce n’est pas très efficace pour les grands tableaux, et de nombreux éléments peuvent ne pas être mélangés, ce qui vous laisse avec un faible caractère aléatoire global. Il serait préférable que vous n’utilisiez cette solution que sur de petits tableaux où un pourcentage élevé d’aléatoire n’est pas critique.

Ce ne sont que deux des solutions pour mélanger un tableau en Javascript. Nous recommandons fortement d’utiliser la première méthode Fisher-Yates parmi ces deux options, même s’il a une charge utile de syntaxe plus importante. J’espère que vous avez trouvé ce guide utile. Pour des tutoriels de programmation plus utiles, rendez-vous dans notre section javascript.

Categorized in:

Guide,