2012-03-16 12 views

Odpowiedz

69

Funkcja Math.random[MDN] wybiera losową wartość z przedziału [0, 1). Możesz skorzystać z tej opcji, aby wybrać wartość losowo.

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

To trochę pedantycznie, ale powinno być '<' or '> ='. W przeciwnym razie "wartość1" będzie nieco bardziej prawdopodobna. Dzieje się tak, ponieważ 'random' zwraca liczbę aż do, ale nie włączając' 1.0'. – Jacob

+0

@Jacob Próbowałem dowiedzieć się, który operator porównania użyć; dzięki. Naprawiono to teraz. –

26

Math.round(Math.random()) zwraca 0 lub 1, każda wartość tylko o połowę mniej czasu.

Można go używać jak prawda czy fałsz „głowy” lub „ogony” lub jako tablica 2 członkiem indeksowanych

['true','false'][Math.round(Math.random())] powróci „prawda” lub „fałsz” ...

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

Zazwyczaj dobrze jest dodać informacje kontekstowe wyjaśniające kod w celu uzyskania odpowiedzi –

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

Powoduje to albo 0, albo 1. "~~" jest dwu-bitowym operatorem NOT. Zasadniczo usuwa część dziesiętną. Przydatne czasami.

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

Nie wiem, jak szybko jest jako całość. Złożyłem to tylko dla ciekawości :)

Powiązane problemy