Cómo seleccionar un elemento aleatorio de la matriz en JavaScript?

Cómo seleccionar un elemento aleatorio de la matriz en JavaScript?

Hay múltiples formas de escribir un programa que selecciona un elemento aleatorio de una matriz, pero el método más adecuado es usar una combinación de matemáticas.aleatorio () y matemáticas.Métodos de piso (). Matemáticas.El método Random () proporciona al usuario un valor de punto flotante aleatorio entre 0 y 1. Mientras que las matemáticas.El método de piso () simplemente toma un valor de punto flotante y redondea el valor para que sea un entero.

Método 1: Elemento aleatorio de una matriz usando matemáticas.aleatorio () y matemáticas.piso()

Primero, cree una matriz con la siguiente línea:

my_arr = ["París", "Londres", "Bangkok", "Nueva York", "Los Ángeles", "Dubai"];

Esta matriz representa una lista de ciudades para elegir al azar. Después de esto, simplemente cree una nueva función que tome la matriz como un parámetro como:

función elemenet_selector (arr)

Dentro de esta función, lo primero es hacer que la longitud de la matriz se le pase dentro de una variable separada:

array_length = arr.longitud;

Entonces, simplemente llame a las matemáticas.Método Random () para obtener un valor de punto flotante y luego multiplique ese número con la longitud de la matriz para obtener el rango entre 0 y la longitud de la matriz:

valor = matemáticas.aleator () * array_length;

Esta línea devolverá los valores de los puntos flotantes, pero no son buenos cuando se trata de ser el índice de una matriz. Confirme esto simplemente envolviendo esta línea en el registro de la consola y observando la salida:

consola.registro (valor)

La salida en el terminal es como:

Para cambiar estos valores en un entero, simplemente pase el valor variable en las matemáticas.método de piso () y retirar la consola.Línea de registro (valor):

indexValue = matemáticas.piso (valor)

Al final de la función, use una instrucción de retorno y devuelva el elemento en el índice de la matriz:

return arr [indexValue];

Después de eso, salga de la función elemento_selector, y haga una llamada a esta función y envuelva esa llamada dentro de una función de registro de consola para imprimir el elemento seleccionado al azar:

consola.log (elemenet_selector (my_arr));

El fragmento de código completo es como:

my_arr = ["París", "Londres", "Bangkok", "Nueva York", "Los Ángeles", "Dubai"];
función elemenet_selector (arr)
array_length = arr.longitud;
valor = matemáticas.aleator () * array_length;
indexValue = matemáticas.piso (valor);
return arr [indexValue];

consola.log (elemenet_selector (my_arr));

Ejecute este programa y observe el siguiente resultado:

Está claro de la salida que los elementos aleatorios se seleccionan de la matriz.

Método 2: Uso del operador doble no bit a bit

Comience creando una matriz al igual que en el método 1 con la ayuda de la siguiente línea:

my_arr = ["París", "Londres", "Bangkok", "Nueva York", "Los Ángeles", "Dubai"];

Después, llame a las matemáticas.aleatorio () y múltiple con la longitud de nuestra matriz para obtener un rango de 0 a la longitud:

valor = matemáticas.Random () * my_arr.longitud;

Esta vez, para convertir este valor en un entero que representa el índice de la matriz, simplemente aplique el operador doble no bit a bit, que es el operador de doble TILDE (~~), y obtener el valor de la matriz como:

var item = my_arr [~~ valor];

Por último, simplemente imprima el elemento seleccionado al azar en el terminal con la función de registro de la consola:

consola.registro (elemento);

El fragmento de código completo para el método 2 es como:

my_arr = ["París", "Londres", "Bangkok", "Nueva York", "Los Ángeles", "Dubai"];
valor = matemáticas.Random () * my_arr.longitud;
var item = my_arr [~~ valor];
consola.registro (elemento);

Ejecute este programa y observe el siguiente resultado:

Está claro de la salida que se selecciona un elemento aleatorio de la matriz

Conclusión

En JavaScript, podemos utilizar el Matemáticas.aleatorio() función con el Matemáticas.piso() función o el Operador doble no bit a bit Para obtener un artículo aleatorio de una matriz. Matemáticas.Random (), cuando se multiplica por la longitud de la matriz, proporciona un valor de rango de índice entre cero y la longitud de la matriz. Sin embargo, este valor de rango está en el punto flotante, por lo tanto, usa Matemáticas.piso() o No operadores de bit a bit para convertirlo en un entero para ser utilizado como índice de matriz. Este artículo ha explicado ambos métodos junto con un ejemplo