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é.
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