Aprendiendo JS esta semana.JS: Math.random para la matriz
¿Es posible utilizar Math.random para devolver un valor aleatorio en una matriz? ¿Ese valor es una cadena y sigue funcionando?
Aprendiendo JS esta semana.JS: Math.random para la matriz
¿Es posible utilizar Math.random para devolver un valor aleatorio en una matriz? ¿Ese valor es una cadena y sigue funcionando?
Puede tomar el número de punto flotante (entre 0 y 1, no incluido) y convertirlo en un índice para la matriz (número entero entre 0 y la longitud de la matriz - 1). Por ejemplo:
var a = ['a', 'b', 'c', 'd', 'e', 'f'];
var randomValue = a[Math.floor(a.length * Math.random())];
leyeron:
var arr = [1, 2, 3, 4, 5, 6];
var r = arr[Math.floor(Math.random()*a.length)]; // r will store a value from a pseudo-random position at arr.
Math.round (Math.random() * a.length) puede devolver un número que sea igual a a.length, que no es un índice válido para la matriz. –
Gracias, fue corregido. – Rodrigo
Sí, esto es posible. Aquí es un código de ejemplo:
<script>
var arr = new Array('a', 'b', 'c', 'd', 'e');
document.write("Test " + arr[Math.floor(Math.random() * ((arr.length - 1) - 0 + 1))]);
</script>
Tenga en cuenta que Math.floor se debe utilizar en lugar de Math.round, con el fin de conseguir una distribución uniforme número.
Gracias por su ayuda.
//My array was setup as such.
var arr = New Array();
arr[0]="Long string for value.";
arr[1]="Another long string.";
//etc...
Con su ayuda, y puesto que sé el número exacto de los valores en mi array (2), que acabo de hacer:
var randomVariable = arr[Math.floor(2*Math.random())]
Luego de salida randomVariable cómo me gustaría.
Gracias!
Deberías usar 'arr.length', no' 2'. –
Puede utilizar esta:
var array = [];
for(i = 0; i < 6; i++) {
array[i] = Math.floor(Math.random() * 60);
}
si necesita un número entre 1 y 100, basta con cambiar Math.random() * 60 a Math.random() * 100.
Gracias! Estoy usando cadenas de sentencias bastante más largas en cada valor de matriz. ¿Hay alguna manera de escribir esto sintácticamente así que no es solo una línea muy grande? –
No importa cómo se construye la matriz. La parte importante es 'floor (length_of_the_array * random_value_between_0_and_1)'. –