我有一些代码用于将数组中的随机值存储到变量中,如下所示:
Quest=["value1","value2","value3","value4"];
var random=Math.floor( Math.random() * Quest.length );
var question = Quest[random];
我多次调用第二行和第三行代码,因此多次生成相同的值。有人知道一些有效的代码来确保相同的值不会按顺序重复生成多次吗?
Repeat:
第一次(t=0),输出数组[t]。
第二次(t=1),输出数组[t]。
当 t%Quest.length (或 array.length)==0 时。
-
再次打乱数组。
and Repeat.
function shuffle(o)
{
for (var j, x, i = o.length; i; j = parseInt(Math.random() * i), x = o[--i], o[i] = o[j], o[j] = x);
return o;
};
Quest = ["value1", "value2", "value3", "value4"];
var myarray = new Array();
var i = 0;
for (i = 0; i < Quest.length; i++) {
myarray[i] = i;
}
shuffle(myarray);
for (i = 0; i < myarray.length; i++) {
document.write(myarray[i]);
}
for (i = 0; i < 50; i++) {
if (i % (Quest.length) == 0) {
shuffle(myarray);
}
document.write("<p>" + Quest[myarray[i % (Quest.length)]] + "</p>");
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)