Hvordan velge et tilfeldig element fra Array i JavaScript?

Hvordan velge et tilfeldig element fra Array i JavaScript?

Det er flere måter å skrive et program som velger et tilfeldig element fra en matrise, men den best egnede metoden er å bruke en kombinasjon av matematikk.tilfeldig () og matematikk.gulv () metoder. Matte.Tilfeldig () -metode gir brukeren en tilfeldig flytende punktverdi mellom 0 og 1. Mens matematikken.Gulv () Metode tar ganske enkelt inn en flytende punktverdi og runder verdien for å gjøre den til et heltall.

Metode 1: Tilfeldig element fra en matrise ved bruk av matematikk.tilfeldig () og matematikk.gulv()

Først må du lage en matrise med følgende linje:

my_arr = ["Paris", "London", "Bangkok", "New York", "Los Angeles", "Dubai"];

Denne matrisen representerer en liste over byer å velge mellom tilfeldig. Etter dette, bare opprette en ny funksjon som tar inn matrisen som en parameter som:

funksjon Elemenet_Selector (arr)

Innenfor denne funksjonen er det aller første å få lengden på matrisen ført til den i en egen variabel:

array_length = arr.lengde;

Så ring bare matematikken.Tilfeldig () -metode for å få en flytende punktverdi og deretter multiplisere det tallet med lengden på matrisen for å få rekkevidden mellom 0 og array-lengden:

verdi = matematikk.tilfeldig () * array_length;

Denne linjen vil returnere flytende punktverdier, men de er ikke bra når det gjelder å være indeksen for en matrise. Bekreft dette ved å bare pakke denne linjen inn i konsollloggen og observere utgangen:

konsoll.logg (verdi)

Utgangen på terminalen er som:

For å endre disse verdiene til et heltall, bare passere verdi variabel i matematikken.gulv () -metode og fjern konsollen.logg (verdi) linje:

IndexValue = Matematikk.gulv (verdi)

På slutten av funksjonen, bruk en returerklæring og returner elementet på IndexValue av matrisen:

return arr [indexValue];

Etter det, kom ut av funksjonen Element_Selector, og ring til denne funksjonen og pakk inn den samtalen i en konsollloggfunksjon for å skrive ut det tilfeldig valgte elementet:

konsoll.Log (Elemenet_Selector (my_arr));

Det komplette kodebiten er som:

my_arr = ["Paris", "London", "Bangkok", "New York", "Los Angeles", "Dubai"];
funksjon Elemenet_Selector (arr)
array_length = arr.lengde;
verdi = matematikk.tilfeldig () * array_length;
IndexValue = Matematikk.gulv (verdi);
return arr [indexValue];

konsoll.Log (Elemenet_Selector (my_arr));

Utfør dette programmet og observer følgende resultat:

Det fremgår av utgangen at tilfeldige elementer er valgt fra matrisen.

Metode 2: Bruker dobbelt ikke bitvis operatør

Begynn med å lage en matrise akkurat som i metode 1 ved hjelp av følgende linje:

my_arr = ["Paris", "London", "Bangkok", "New York", "Los Angeles", "Dubai"];

Etterpå, ring matematikk.Tilfeldig () og flere det med lengden på vår matrise for å få et område fra 0 til lengden:

verdi = matematikk.tilfeldig () * my_arr.lengde;

Denne gangen, for å konvertere denne verdien til et heltall som representerer indeksen for matrisen, kan du bare bruke dobbelt ikke -bitvis operatør, som er dobbel tilde -operatør (~~), og hente verdien fra matrisen som:

var item = my_arr [~ ~ verdi];

Sist, bare skriv ut det tilfeldig valgte elementet på terminalen ved hjelp av konsollloggfunksjon:

konsoll.logg (element);

Komplett kodebit for metode 2 er som:

my_arr = ["Paris", "London", "Bangkok", "New York", "Los Angeles", "Dubai"];
verdi = matematikk.tilfeldig () * my_arr.lengde;
var item = my_arr [~ ~ verdi];
konsoll.logg (element);

Utfør dette programmet og observer følgende resultat:

Det fremgår av utgangen at et tilfeldig element blir valgt fra matrisen

Konklusjon

I JavaScript kan vi bruke Matte.tilfeldig() funksjon med en av dem Matte.gulv() funksjon eller Dobbelt ikke bitvis operatør å hente et tilfeldig element fra en matrise. Matte.Tilfeldig (), når multiplisert med lengden på matrisen, gir en rekkeviddeverdi på indeksen mellom null og matrisens lengde. Imidlertid er denne områdeverdien i flytende punkt Matte.gulv() eller Ikke bitvis operatører For å konvertere det til et heltall som skal brukes som matriseindeksen. Denne artikkelen har forklart begge disse metodene sammen med et eksempel