"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 selecionar com eficiência uma propriedade aleatória de um objeto JavaScript?

Como selecionar com eficiência uma propriedade aleatória de um objeto JavaScript?

Publicado em 2024-11-06
Navegar:476

How to Efficiently Select a Random Property from a JavaScript Object?

Selecionando uma propriedade aleatória de um objeto JavaScript

Buscar uma propriedade aleatória de um objeto JavaScript é uma tarefa fundamental que pode surgir em várias codificações cenários. Considere um objeto contendo pares de valores-chave como:

{cat: 'meow', dog: 'woof', snake: 'hiss'}

Tradicionalmente, esta tarefa poderia ser realizado por meio de um longo loop que itera pelas propriedades do objeto, seleciona uma aleatoriamente e recupera seu valor. No entanto, essa abordagem pode ser detalhada e computacionalmente ineficiente.

Uma solução otimizada

Uma solução mais concisa e eficiente para selecionar uma propriedade aleatória de um objeto é fornecida pelo seguinte código:

var randomProperty = function (obj) {
    var keys = Object.keys(obj);
    return obj[keys[ keys.length * Math.random() << 0]];
};

Este código emprega as seguintes etapas:

  1. Recupera todas as chaves de propriedade do objeto usando Object.keys(), resultando em uma matriz de chaves.
  2. Gera um índice aleatório dentro do intervalo de índices de array usando Math.random().
  3. Acessa a propriedade no índice calculado usando o operador de notação de colchetes [ ].

Esta solução evita a necessidade de loops e busca diretamente a propriedade aleatória, tornando-a concisa e computacionalmente mais rápida.

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