"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment puis-je sélectionner efficacement des éléments de tableau aléatoire sans répétitions ?

Comment puis-je sélectionner efficacement des éléments de tableau aléatoire sans répétitions ?

Publié le 2024-11-20
Parcourir:641

How Can I Efficiently Select Random Array Items Without Repeats?

Comment sélectionner efficacement et aléatoirement un élément d'un tableau sans répétitions

Votre code crée un tableau de choix récents pour éviter les répétitions et appelle une fonction récursive nommé ChooseName() lorsqu'un élément sélectionné figure dans les choix récents. Cette approche garantit l'unicité mais peut conduire à une boucle infinie si la taille du tableau est limitée.

Est-ce une fonction récursive ?

Oui, ChooseName() s'appelle à retrouvez une sélection unique. La récursivité permet à la fonction de parcourir les éléments du tableau jusqu'à ce qu'elle en trouve un qui ne figure pas dans les choix récents.

Amélioration de l'efficacité

Pour éviter une boucle infinie, envisagez une approche alternative suggéré dans la réponse :

function randomNoRepeats(array) {
  var copy = array.slice(0);
  return function() {
    if (copy.length 

Cette fonction génère une copie du tableau d'origine et en choisit aléatoirement un élément. Une fois que tous les éléments sont utilisés, il crée une nouvelle copie du tableau d'origine, garantissant des sélections uniques même lorsque le tableau est épuisé.

Dernier tutoriel Plus>

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