2012-03-16 13 views

Respuesta

69

La función Math.random[MDN] elige un valor aleatorio en el intervalo [0, 1). Puede aprovechar esto para elegir un valor al azar.

var chosenValue = Math.random() < 0.5 ? value1 : value2; 
+12

Esto es un poco pedante, pero debería ser '<' or '> ='. De lo contrario, 'value1' será un poco más probable. Esto es porque 'random' devuelve un número hasta, pero sin incluir,' 1.0'. – Jacob

+0

@Jacob Estaba tratando de averiguar qué operador de comparación usar; Gracias. Está arreglado ahora. –

26

Math.round(Math.random()) devuelve un 0 o un 1, cada valor de casi la mitad del tiempo.

Se puede utilizar como un verdadero o falso, 'cabezas' o 'colas', o como una matriz 2 miembro en índices

['true','false'][Math.round(Math.random())] volverá 'verdadero' o 'falso' ...

2
parseInt(Math.random() * 2) ? true : false; 
+3

Por lo general, es bueno agregar alguna información contextual que explique su código para una respuesta –

4
~~(Math.random()*2) ? true : false 

Esto devuelve 0 o 1. "~~" es un operador NOT de doble bit. Básicamente elimina la parte decimal. Útil a veces.

It is supposed to be faster then Math.floor()

No está seguro de lo rápido que es en su conjunto. Lo envié solo por curiosidad :)

Cuestiones relacionadas