我们正在讨论CSS和Javascript。
我需要10个CSS div ' s(黄色方块,绿色方块和红色方块......)在1-3秒的时间段后随机出现在屏幕上。
问题:
编辑:似乎我以错误的方式传达了这个问题。我知道Math.random()是一个可扩展的解决方案,但如果超过10(或N)次不是,则编写。那么如何让计算机从10个(或N个)元素中取出一个。我从 dystroy 得到了最好的答案 - 拿一个数组并将其洗牌,然后取出第一个元素。谢谢!
答案 0 :(得分:3)
Date.now() % 10
。将10
替换为div的数量。 now
函数提供纪元毫秒数。
请注意,此解决方案不会产生真正的随机选择,因为生成的数字序列通过了随机性的统计测试(至少与专用生成器处于同一级别的nit)。但是,出于实际目的,它就足够了(意味着除非你每隔几毫秒调用now
和/或将now
的调用计时到计时器;我认为两者都不可能以可靠的方式)。
答案 1 :(得分:1)
Math.random
完全可扩展。 : - )
var index = Math.floor(Math.random() * 10);
...会为您提供0
到9
的索引。 常规公式为:
value = Math.floor(Math.random() * (max - min)) + min;
...要获得min <= value < max
范围内的值,但当min
为0
时(就像从典型数组中选择内容时那样),显然我们可以简化一点。