2012-03-16 31 views

Trả lời

69

Hàm Math.random[MDN] chọn giá trị ngẫu nhiên trong khoảng thời gian [0, 1). Bạn có thể tận dụng điều này để chọn giá trị ngẫu nhiên.

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

Đây là một chút ngữ nghĩa, nhưng nó phải là '<' or '> = '. Nếu không, 'value1' sẽ có nhiều khả năng hơn. Điều này là do 'random' trả về một số cho đến khi không bao gồm' 1.0'. – Jacob

+0

@Jacob Tôi đã cố gắng tìm ra toán tử so sánh nào để sử dụng; cảm ơn. Bây giờ nó đã được sửa. –

26

Math.round(Math.random()) trả về giá trị 0 hoặc 1, mỗi giá trị chỉ bằng một nửa thời gian.

Bạn có thể sử dụng nó như một đúng hay sai, 'đứng đầu' hoặc 'đuôi', hoặc là một mảng 2 thành viên Index- Phần mềm

['true','false'][Math.round(Math.random())] sẽ trở lại 'true' hoặc 'false' ...

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

Bạn nên thêm một số thông tin theo ngữ cảnh giải thích mã của bạn để có câu trả lời –

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

Trả về 0 hoặc 1. "~~" là toán tử NOT bitwise kép. Về cơ bản dải phần thập phân. Đôi khi hữu ích.

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

Không chắc chắn nhanh như thế nào. Tôi đã gửi nó chỉ vì sự tò mò :)

Các vấn đề liên quan