【发布时间】:2012-09-13 18:42:06
【问题描述】:
我有这个函数来创建一个随机范围的数字。
function randomRange(min, max) {
return (new Array(++max-min))
.join('.').split('.')
.map(function(v,i){ return min+i; })
.sort(function(){ return 0|Math.random()*max; });
}
它可以完美运行,但仅适用于 Chrome。由于某种原因,所有其他浏览器几乎没有变化...
我在这里有一个简单的演示,所以你可以看到 http://jsfiddle.net/elclanrs/zZRda/ 的区别。
您可以看到 Chrome 中的数字顺序大多是随机的,但在其他浏览器中变化不大,只有少数数字改变了位置,但看起来几乎相同。
现在在 Chrome 和其他浏览器中检查http://jsbin.com/iyalax/3/edit,您会非常清楚地看到差异。
任何想法为什么会发生这种情况?
编辑:我还有另一个randomRange 函数在所有浏览器中都能正常工作,只是更长更丑,检查http://jsbin.com/iyalax/4/edit 看看有什么不同。
【问题讨论】:
-
As you can see the order of numbers in Chrome is mostly random你怎么能看到随机顺序? Read this if you want to know more about "random". -
查看第二个演示,它变得非常清晰。这些图块在 Chrome 中非常随机地消失,但在 Firefox 中它们大多从下到上消失,没有变化……点击“切换猫”几次,你会看到不同。
-
在 FireFox 中我看到 1x1 图片。也许这是一个 html/css 错误
-
使用排序函数进行随机洗牌仍然经常会引起很多混乱,所以要小心!
-
@Bondye:确保点击右上角的“Run with JS”。我认为这是 jsbin 或 placekitten 的问题,如果您按下按钮图像会显示正常。
标签: javascript random