Alguno podríais pensar que lo que explicábamos en el artículo de cómo rellenar un array con números, a parte de la parte didáctica, no tendría mucha aplicabilidad ya que cargamos un array con el mismo número. Si que es verdad que los casos de uso son menos, pero para que le podáis sacar un verdadero partido vamos a ver cómo podemos rellenar un array con números aleatorios en Javascript. De esta manera cada uno de los elementos del array que creemos por defecto será diferente.
En este caso, en vez del método .fill()
, vamos a utilizar el método .from()
. Así que vamos a ver cual es la sintaxis del método .from()
Array.from(arrayLike[, mapFn[, thisArg]])
En este caso el primer parámetro arrayLike tiene que ser un elemento iterable que será el que convertiremos en un array. El segundo parámetro es mapFn que será una función de mapa que se ejecutará por cada elemento del array. Este segundo parámetro jugará un papel principal a la hora de rellenar los elementos del array. Y thisArg es el valor a utilizar como this en la función del mapa.
Una vez que conocemos cómo funciona el método .from()
vamos a ver cómo tenemos que ir rellenándolo. Lo primero será darle un elemento iterable que tenga diez elementos. Así que podemos crear un array con los 10 elementos vacíos.
new Array(10)
Pero lo vamos a hacer de una forma diferente y lo escribiremos de una manera abreviada con una instanciación del array de la siguiente forma:
{length: 10}
Ahora nos centraremos en la función de mapa. Esta función es la que va a devolver el valor a asignar a cada una de las posiciones del array. Es por ello que es aquí dónde devolvemos el número aleatorio.
function() { return Math.floor(Math.random() * 10); }
Para el número aleatorio hemos utilizado el método .random()
del objeto Math
tal y como explicamos en cómo generar números aleatorios en Javascript.
Esta función la podemos abreviar con el operador arrow de la siguiente forma:
() => Math.floor(Math.random() * 10)
Así, si componemos nuestro método .from()
nos quedará de la siguiente forma:
let miarray = Array.from({length: 10}, () => Math.floor(Math.random() * 10));
Ya solo nos quedará mostrar el array relleno con los números aleatorios
let miarray = Array.from({length: 10}, () => Math.floor(Math.random() * 10)); miarray.forEach(function(item,index,arr){ console.log(item); });
Así que hemos visto que con una sola función y un poco de habilidad hemos conseguido rellenar un array con números aleatorios en Javascript.