我有这个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的结果不会出现警报,而是希望在span1标记为Span1和Span2的文档中显示dest1和dest2的结果。我只是对如何做到这一点有一个大脑放屁
谢谢!
答案 0 :(得分:2)
首先,使用floor,而不是round,你不希望你的索引是长度:
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显示,最简单的方法是从存在的元素开始:
<span id=d1></span>
<span id=d2></span>
然后填写他们:
document.getElementById("d1").innerHTML = dest1;
document.getElementById("d2").innerHTML = dest2;
答案 1 :(得分:0)
//我假设span1和span2是这些元素的id
var doNewPoll = function(myVacations, span1, span2){
var vacationIndex1 = Math.round(Math.random(myVacations.length));
var vacationIndex2 = null;
do{
vacationIndex2 = Math.round(Math.random(myVacations.length));
} while (vacationIndex2 == vacationIndex);
document.getElementById(span1).innerHTML = myVacations[vacationIndex1];
document.getElementById(span2).innerHTML = myVacations[vacationIndex2];
}