我有这个javascript代码:

var doNewPoll = function(){
  var vacationIndex = Math.round(Math.random(myVacations.length));
  var dest1 = myVacations[vacationIndex];
  var dest2 = myVacations[vacationIndex];
  alert(dest1);
  alert(dest2);
  }


我的两个问题是:
1)如何确保变量dest1和dest2不相同?我希望它从myVacations数组中提取2个不同的选项。
和2)我可以使警报正常工作,但是我希望代替dest1和dest2的结果显示在文档中,其跨度标签ID为Span1和Span2。我只是想办法做到这一点。
谢谢!

最佳答案

首先,使用地板,而不是圆形,您不希望索引为长度:

 Math.floor(Math.random(myVacations.length));


然后,最容易避免重复的就是循环直到第二个数字与第一个数字不同。当然,这意味着您必须建立另一个索引:

var index1 = Math.floor(Math.random(myVacations.length));
var index2 = index1;
while (index2==index1) index2 = Math.floor(Math.random(myVacations.length));
var dest1 = myVacations[index1];
var dest2 = myVacations[index2];


为了使文档以跨度显示,最简单的方法是从尚存在的元素开始:

<span id=d1></span>
<span id=d2></span>


然后填充它们:

document.getElementById("d1").innerHTML = dest1;
document.getElementById("d2").innerHTML = dest2;

09-11 19:06