«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как я могу эффективно выбирать случайные элементы массива без повторов?

Как я могу эффективно выбирать случайные элементы массива без повторов?

Опубликовано 20 ноября 2024 г.
Просматривать:868

How Can I Efficiently Select Random Array Items Without Repeats?

Как эффективно выбирать элемент массива случайным образом без повторений

Ваш код создает массив последних вариантов выбора, чтобы предотвратить повторение, и вызывает рекурсивную функцию называется ChooseName(), когда выбранный элемент находится в списке последних вариантов выбора. Этот подход обеспечивает уникальность, но может привести к бесконечному циклу, если размер массива ограничен.

Это рекурсивная функция?

Да, метод ChooseName() вызывает саму себя найти уникальный выбор. Рекурсия позволяет функции перебирать элементы массива, пока не найдет тот, которого нет в списке последних вариантов.

Повышение эффективности

Чтобы избежать бесконечного цикла, рассмотрите альтернативный подход предложено в ответе:

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

Эта функция генерирует копию исходного массива и случайным образом выбирает из него элемент. Как только все элементы будут использованы, он создаст новую копию исходного массива, гарантируя уникальность выбора, даже если массив исчерпан.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3