Como selecionar um elemento aleatório da matriz em javascript?

Como selecionar um elemento aleatório da matriz em javascript?

Existem várias maneiras de escrever um programa que seleciona um elemento aleatório de uma matriz, mas o método mais adequado é usar uma combinação de matemática.Random () e matemática.Métodos de piso (). Matemática.O método aleatório () fornece ao usuário um valor de ponto flutuante aleatório entre 0 e 1. Enquanto a matemática.O método de piso () simplesmente pega um valor de ponto flutuante e arredonda o valor para torná-lo um número inteiro.

Método 1: Elemento aleatório de uma matriz usando matemática.Random () e matemática.chão()

Primeiro, crie uma matriz com a seguinte linha:

my_arr = ["Paris", "Londres", "Bangkok", "Nova York", "Los Angeles", "Dubai"];

Esta matriz representa uma lista de cidades para escolher aleatoriamente. Depois disso, basta criar uma nova função que abre a matriz como um parâmetro como:

função eleMenet_selector (arr)

Dentro dessa função, a primeira coisa é obter a duração da matriz a ela dentro de uma variável separada:

Array_length = arr.comprimento;

Então, basta ligar para a matemática.Random () Método para obter um valor de ponto flutuante e, em seguida, multiplique esse número com o comprimento da matriz para obter o intervalo entre 0 e o comprimento da matriz:

valor = matemática.aleatoriamente () * array_length;

Essa linha retornará valores de ponto flutuante, mas eles não são bons quando se trata de ser o índice de uma matriz. Confirme isso simplesmente envolvendo essa linha no log do console e observando a saída:

console.log (valor)

A saída no terminal é como:

Para transformar esses valores em um número inteiro, simplesmente passe o valor variável na matemática.Método do piso () e remova o console.Linha de log (valor):

IndexValue = Math.piso (valor)

No final da função, use uma declaração de retorno e devolva o elemento no IndexValue da matriz:

retornar arr [indexValue];

Depois disso, saia da função Element_Selector, e faça uma chamada para esta função e envolva que chama dentro de uma função de log do console para imprimir o elemento selecionado aleatoriamente:

console.log (elemenet_selector (my_arr));

O trecho de código completo é como:

my_arr = ["Paris", "Londres", "Bangkok", "Nova York", "Los Angeles", "Dubai"];
função eleMenet_selector (arr)
Array_length = arr.comprimento;
valor = matemática.aleatoriamente () * array_length;
IndexValue = Math.piso (valor);
retornar arr [indexValue];

console.log (elemenet_selector (my_arr));

Execute este programa e observe o seguinte resultado:

Fica claro na saída que os elementos aleatórios são selecionados da matriz.

Método 2: Usando o operador duplo não bit netwise

Comece criando uma matriz, como no método 1, com a ajuda da seguinte linha:

my_arr = ["Paris", "Londres", "Bangkok", "Nova York", "Los Angeles", "Dubai"];

Depois, ligue para a matemática.Random () e múltiplo com o comprimento de nossa matriz para obter um intervalo de 0 ao comprimento:

valor = matemática.aleatoriamente () * my_arr.comprimento;

Desta vez, para converter esse valor em um número inteiro que representa o índice da matriz, basta aplicar o operador duplo não bit netwise, que é o operador duplo de tilde (~~), e buscar o valor da matriz como:

var item = my_arr [~~ valor];

Por fim, basta imprimir o elemento selecionado aleatoriamente no terminal com a ajuda da função de log do console:

console.log (item);

Snippet de código completo para o método 2 é como:

my_arr = ["Paris", "Londres", "Bangkok", "Nova York", "Los Angeles", "Dubai"];
valor = matemática.aleatoriamente () * my_arr.comprimento;
var item = my_arr [~~ valor];
console.log (item);

Execute este programa e observe o seguinte resultado:

Fica claro na saída que um elemento aleatório está sendo selecionado da matriz

Conclusão

Em JavaScript, podemos utilizar o Matemática.aleatório() função com o Matemática.chão() função ou o Operador duplo não bit new Para buscar um item aleatório de uma matriz. Matemática.Random (), quando multiplicado pelo comprimento da matriz, fornece um valor de índice de intervalo entre zero e o comprimento da matriz. No entanto, esse valor de intervalo está em ponto flutuante, portanto, use Matemática.chão() ou Operadores não bitwise para convertê -lo em um número inteiro para ser usado como índice de matriz. Este artigo explicou esses dois métodos, juntamente com um exemplo