¿Como puedo obtener valores random de un array hasta que se acaben lo elementos del mismo?

publicado por: user67171

El caso es que quiero obtener mediante un loop valores random de un array hasta que los mismos se acaben.

Todos los array cuentan con 7 valores en total y, al final, lo que quiero conseguir es obtener una combinación de dicho valores de forma automática para generar frases del mismo modo.

Lo que quiero es que esos valores colours, countrys y days sean ordenados de forma aleatoria.

Éste es el loop utilizado por si sirve de algo:

_x000D_

_x000D_

var colours = ["White", "Red", "Black", "Purple", "Grey", "Yellow", "Blue"];_x000D_
var countrys = ["Japan", "Korea", "Spain", "England", "China", "Singapur","Rumania"];_x000D_
var days = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"]; _x000D_
    _x000D_
for (var n = 0; n < colours.length; n++) {_x000D_
        document.write("My " + (n+1) + " choice is " + colours[n] + " in " + countrys[n] + " on " + days[n] + "<br>");_x000D_
}

_x000D_

_x000D_

_x000D_

solución

Puedes determinar que al realizar el bucle tome elementos aleatorios de cada array por ejemplo:

colours[Math.floor(Math.random() * colours.length)] , obtendrías un elemento aleatorio del array colours.

Este sería una ejemplo completo:

_x000D_

_x000D_

var colours = ["White", "Red", "Black", "Purple", "Grey", "Yellow", "Blue"];_x000D_
var countrys = ["Japan", "Korea", "Spain", "England", "China", "Singapur","Rumania"];_x000D_
var days = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"];_x000D_
_x000D_
/*for (var n = 0; n < colours.length; n++) {_x000D_
    document.write("My " + (n+1) + " choice is " + colours[n] + " in " + countrys[n] + " on " + days[n] + "<br>");_x000D_
}*/_x000D_
_x000D_
_x000D_
for (var n = 0; n < colours.length; n++) {_x000D_
    document.write("My " + (n+1) + " choice is " + colours[Math.floor(Math.random() * colours.length)] + " in " + countrys[Math.floor(Math.random() * countrys.length)] + " on " + days[Math.floor(Math.random() * days.length)] + "<br>");_x000D_
}

_x000D_

_x000D_

_x000D_

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *