Trabajando con números aleatorios

Este sencillo ejemplo trata de como rellenar una lista de longitud dada, en este caso 10, con números aleatorios comprendidos entre 0 y 20, todos enteros.

En este ejemplo lo más destacado es el uso de arrays (como dato y como objeto), la estructura bucles , y el objeto Math

Solución

<script>

let lista=new Array(10);

rellenar(lista);

document.write(lista);

function rellenar(matriz)

{

let largo, valor, ind;

largo = matriz.length;

for(ind = 0; ind < largo; ind++)

   {

     valor = Math.random()*20;

    matriz[ind] = Math.round(valor);

   }

}

</script>

//Otra solución usando el objeto Array

<script>

let lista = new Array(10);

lista.fill(0);

lista.forEach(()=>{ Math.round(Math.random()*20)});

</script>

Explicación

En este programa es interesante observar como los valores dados al argumento dentro de la función permanecen al finalizar ésta, de forma que la variable lista antes de pasar por la función estaba vacía y despues de ejecutarse rellenar posee valores numéricos aleatorios.

Esto ocurre así porque ese argumento es un objeto Array. JavaScript usa paso de argumentos por referencia cuando los parámetrso son objetos.

Otro punto es que esta función no usa return ya que no devuelve ningún valor.

El resto del código es muy simple: un bucle for() para recorrer la matriz e irle dando valores calculados con el método random del objeto Math redondeados al entero mas próximo mediante el método round.

Segunda solución: Aquí rellenamos el array con ceros y luego, mediante el método forEach, ponemos en cada elemento de la lista el valor al azar. Se usa una función callback tipo flecha (=>) , a cada elemento de la lista le asigna el valor devuelto por esta función. Esta es una solución mínima.