Comment mélanger des éléments dans un tableau JavaScript

Réponse courte:

let list = [1, 2, 3, 4, 5, 6, 7, 8, 9]
list = list.sort(() => Math.random() - 0.5)

Longue réponse:

J'ai eu besoin de mélanger les éléments dans un tableau JavaScript.

En d'autres termes, je voulais remixer les éléments du tableau, les avoir dans un ordre différent du précédent.

À partir d'un tableau comme celui-ci:

[1, 2, 3, 4, 5, 6, 7, 8, 9]

Je voulais quelque chose de différent à chaque fois que j'exécutais l'opération, comme ceci:

[4, 8, 2, 9, 1, 3, 6, 5, 7]
[5, 1, 2, 3, 7, 4, 9, 6, 8]
[3, 1, 4, 7, 8, 6, 2, 9, 5]

Voici le processus que j'ai proposé. Compte tenu du tableaulist:

const list = [1, 2, 3, 4, 5, 6, 7, 8, 9]

Nous pouvons appeler lesort()méthode, qui accepte une fonction qui renvoie une valeur comprise entre -0,5 et 0,5:

list.sort(() => Math.random() - 0.5)

Cette fonction est exécutée pour chaque élément du tableau. Vous pouvez passer 2 éléments du tableau, comme ceci:list.sort((a, b) => Math.random() - 0.5)mais dans ce cas, nous ne les utilisons pas. Si le résultat de cette opération est <0, l'élémentaest mis à un indice inférieur àb, and the opposite if the result is > 0.

Tu peuxlisez tous les détails sur Array.sort () ici.

Appelsort()sur une liste ne modifie pas la valeur d'origine du tableau.

Vous pouvez maintenant affecter le résultat de cette opération à une nouvelle variable, comme ceci:

const shuffled = list.sort(() => Math.random() - 0.5)

ou vous pouvez également écraser la liste existante, si vous déclarez cela comme unletvariable:

let list = [1, 2, 3, 4, 5, 6, 7, 8, 9]
list = list.sort(() => Math.random() - 0.5)

Téléchargez mon gratuitManuel du débutant JavaScript


Plus de tutoriels js: