JavaScript Selecionar valor aleatório do array
Este tutorial irá discutir como escolher um valor aleatório de um array usando a função Math.random()
em JavaScript.
Escolha um valor aleatório de um array usando a função Math.random()
em JavaScript
Podemos escolher um valor de uma determinada matriz usando seu índice em JavaScript. Para escolher um valor aleatório de um determinado array, precisamos gerar um índice aleatório no intervalo de 0 ao comprimento do array. Podemos gerar um valor aleatório usando a função Math.random()
e para definir o intervalo desse valor aleatório, temos que multiplicá-lo pelo comprimento do array que podemos obter usando a função length
.
O valor aleatório gerado pela função Math.random()
é um valor de ponto flutuante. Para converter o valor de ponto flutuante em inteiro, temos que usar a função Math.floor()
. A função Math.floor()
converte um número de ponto flutuante em um inteiro que será menor que o número fornecido. Por exemplo, vamos criar um array de cinco valores e escolher um valor aleatório dele e mostrá-lo no console. Veja o código abaixo.
var myArray = ['one', 'two', 'three', 'four', 'five'];
var rand = Math.floor(Math.random() * myArray.length);
var rValue = myArray[rand];
console.log(rValue)
Resultado:
two
No código acima, o índice aleatório será armazenado na variável rand
, e usando este índice podemos escolher um valor aleatório do array que será armazenado na variável rValue
. Você também pode usar o operador NOT
bit a bit ~~
ou o operador OR
bit a bit |
em vez da função Math.floor()
para converter o número de ponto flutuante em um inteiro. Usar operadores bit a bit é mais rápido, mas pode não funcionar para um array contendo milhões de valores. Por exemplo, vamos gerar um número aleatório usando o operador bit a bit NOT
. Veja o código abaixo.
var myArray = ['one', 'two', 'three', 'four', 'five'];
var rand = ~~(Math.random() * myArray.length);
var rValue = myArray[rand];
console.log(rValue)
Resultado:
one
Agora, vamos gerar um número aleatório usando o operador bit a bit OR
. Veja o código abaixo.
var myArray = ['one', 'two', 'three', 'four', 'five'];
var rand = Math.random() * myArray.length | 0;
var rValue = myArray[rand];
console.log(rValue)
Resultado:
three
Se você executar o código novamente, a saída será alterada. Você também pode fazer uma função para escolher valores aleatórios de um determinado array para que não tenha que reescrever todo o código. Por exemplo, vamos fazer uma função para escolher valores aleatórios de um determinado array e testá-lo com um array. Veja o código abaixo.
function RandArray(array) {
var rand = Math.random() * array.length | 0;
var rValue = array[rand];
return rValue;
}
var myArray = ['one', 'two', 'three', 'four', 'five', 'six'];
var rValue = RandArray(myArray);
console.log(rValue)
Resultado:
six
Se você executar o código novamente, a saída será alterada. Agora, para escolher um valor aleatório de um array, você só precisa chamar a função RandArray()
.