jQuery - 防止连续两次显示的数组中的随机数

时间:2015-05-28 07:34:55

标签: javascript jquery arrays

我有一个我正在随机化的数组:

var imgArray = [1, 2, 3, 4, 5],
    i = imgArray[Math.floor(Math.random()*imgArray.length)];

然而,由于事实上只有5个数字,我得到了很多重复。

例如:我的输出通常类似于1,4,5,5,5,3,2,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;
&#13;
&#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);