在javascript中随机选择和输出变量到span标签

randomize selection and output variable to span tag in javascript

本文关键字:变量 span 标签 输出 javascript 随机 选择      更新时间:2023-09-26

我有这个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的结果显示在文档中的span标签id为Span1和Span2。我只是在想该怎么做。
谢谢!

首先,使用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;

//我假设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]; 
}