JavaScript Selecionar valor aleatório do array

Ammar Ali 12 outubro 2023
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().

Autor: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

Artigo relacionado - JavaScript Array