"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como posso selecionar com eficiência itens de matriz aleatória sem repetições?

Como posso selecionar com eficiência itens de matriz aleatória sem repetições?

Publicado em 2024-11-20
Navegar:400

How Can I Efficiently Select Random Array Items Without Repeats?

Como selecionar itens de array de maneira eficiente e aleatória sem repetições

Seu código cria uma matriz de escolhas recentes para evitar repetições e chama uma função recursiva chamado ChooseName() quando um item selecionado está nas escolhas recentes. Essa abordagem garante exclusividade, mas pode levar a um loop infinito se o tamanho do array for limitado.

É uma função recursiva?

Sim, ChooseName() chama a si mesmo para encontre uma seleção única. A recursão permite que a função itere pelos itens da matriz até encontrar um que não esteja nas escolhas recentes.

Melhorando a eficiência

Para evitar loop infinito, considere uma abordagem alternativa sugerido na resposta:

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

Esta função gera uma cópia do array original e escolhe aleatoriamente um item dele. Depois que todos os itens forem usados, ele cria uma nova cópia do array original, garantindo seleções exclusivas mesmo quando o array estiver esgotado.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3