我有一个我正在随机化的数组:
var imgArray = [1, 2, 3, 4, 5],
i = imgArray[Math.floor(Math.random()*imgArray.length)];
然而,由于事实上只有5个数字,我得到了很多重复。
例如:我的输出通常类似于1,4,5,5,5,3,2,2 ......依此类推......
如何防止“随机”号码与之前的号码相同?
非常感谢任何帮助,谢谢!!
答案 0 :(得分:1)
就像@Juhana所说,下面是代码:
var arr = [1, 2, 3, 4, 5];
var limit = 10;
var last_value = 0;
var rand = 0;
for(i=0; i < limit; i++) {
while(rand === last_value) {
rand = arr[Math.floor(Math.random()*arr.length)];
}
last_value = rand;
$("div").append(rand);
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<div>Result: </div>
&#13;
答案 1 :(得分:0)
var imgArray = [1, 2, 3, 4, 5]
while(imgArray .length < 10){
var randomnumber=Math.floor(Math.random()*imgArray .length)
var found=false;
for(var i=0;i<imgArray .length;i++){
if(imgArray [i]==randomnumber){found=true;break}
}
if(!found)imgArray [imgArray .length]=randomnumber;
}
document.write(imgArray);