【发布时间】:2014-01-26 23:21:16
【问题描述】:
我对编程还很陌生,我一直在做一个项目,该项目可以找到四个随机 div 并向它们添加一个类——我唯一的问题是,因为我的随机生成器经常生成相同的数字,所以程序通常不会将类附加到四个随机 div,但很可能是三个甚至两个。所以我的问题是,如果可能的话,我如何将我的程序设置为只生成四个不同的数字。 我听说过 Fisher Yates 的尝试,但我没有完全理解。 这是我的 JS:
for(var i = 4; i>0; i--){
var rand = Math.floor((Math.random()*16)+1);
var array=new Array();
array[1] = "one";
array[2] = "two";
array[3] = "three";
array[4] = "four";
array[5] = "five";
array[6] = "six";
array[7] = "seven";
array[8] = "eight";
array[9] = "nine";
array[10] = "ten";
array[11] = "eleven";
array[12] = "twelve";
array[13] = "thirteen";
array[14] = "fourteen";
array[15] = "fifteen";
array[16] = "sixteen";
$('#'+array[rand]).addClass('bomb');
}
非常感谢任何帮助!
【问题讨论】:
-
1. stackoverflow.com/a/6274398/251311 2. 以
0开始索引,而不是1 -
Fisher Yates shuffle 遇到了什么问题?你看过这里stackoverflow.com/questions/2450954/…。你需要打乱数组,然后抓取四个元素。
-
只需列出所有内容,将列表随机排列,然后取出前四个。如果您不想编写自己的方法,请搜索 [].shuffle 方法,但要查找基于 sort() 的方法;他们实际上并没有随机化......
标签: javascript random numbers