JavaScript Scegli un valore casuale dall'array
Questo tutorial discuterà come scegliere un valore casuale da un array usando la funzione Math.random()
in JavaScript.
Scegli un valore casuale da un array usando la funzione Math.random()
in JavaScript
Possiamo scegliere un valore da un dato array usando il suo indice in JavaScript. Per scegliere un valore casuale da un dato array, dobbiamo generare un indice casuale nell’intervallo da 0 alla lunghezza dell’array. Possiamo generare un valore casuale utilizzando la funzione Math.random()
e per impostare l’intervallo di questo valore casuale, dobbiamo moltiplicarlo per la lunghezza dell’array che possiamo ottenere utilizzando la funzione length
.
Il valore casuale generato dalla funzione Math.random()
è un valore a virgola mobile. Per convertire il valore in virgola mobile in intero, dobbiamo usare la funzione Math.floor()
. La funzione Math.floor()
converte un numero in virgola mobile in un intero che sarà minore del numero dato. Ad esempio, creiamo un array di cinque valori e scegliamo un valore casuale da esso e lo mostriamo sulla console. Vedi il codice qui sotto.
var myArray = ['one', 'two', 'three', 'four', 'five'];
var rand = Math.floor(Math.random() * myArray.length);
var rValue = myArray[rand];
console.log(rValue)
Produzione:
two
Nel codice sopra, l’indice casuale verrà memorizzato nella variabile rand
, e utilizzando questo indice possiamo scegliere un valore casuale dall’array che verrà memorizzato nella variabile rValue
. È inoltre possibile utilizzare l’operatore NOT
bit a bit ~~
o l’operatore OR
bit a bit |
invece della funzione Math.floor()
per convertire il numero in virgola mobile in un intero. L’uso degli operatori bit per bit è più veloce ma potrebbe non funzionare per un array contenente milioni di valori. Ad esempio, generiamo un numero casuale utilizzando l’operatore bit a bit NOT
. Vedi il codice qui sotto.
var myArray = ['one', 'two', 'three', 'four', 'five'];
var rand = ~~(Math.random() * myArray.length);
var rValue = myArray[rand];
console.log(rValue)
Produzione:
one
Ora generiamo un numero casuale utilizzando l’operatore OR
bit a bit. Vedi il codice qui sotto.
var myArray = ['one', 'two', 'three', 'four', 'five'];
var rand = Math.random() * myArray.length | 0;
var rValue = myArray[rand];
console.log(rValue)
Produzione:
three
Se esegui nuovamente il codice, l’output cambierà. Puoi anche creare una funzione per scegliere valori casuali da un dato array in modo da non dover riscrivere tutto il codice. Ad esempio, creiamo una funzione per selezionare valori casuali da un dato array e testiamolo con un array. Vedi il codice qui sotto.
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)
Produzione:
six
Se esegui nuovamente il codice, l’output cambierà. Ora, per scegliere un valore casuale da un array, devi solo chiamare la funzione RandArray()
.