1

私はこのJavaScriptコードを持っています:

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

私の 2 つの質問は次のとおりです
。1) 変数 dest1 と dest2 が同じでないことを確認するにはどうすればよいですか? myVacations 配列から 2 つの異なるオプションを取得する必要があります。

2) アラートを機能させることはできますが、アラートの代わりに、dest1 と dest2 の結果を、Span1 と Span2 という ID を持つスパン タグでドキュメントに表示したいと考えています。私はそれを行う方法について頭がおならをしているだけです。
ありがとう!

4

2 に答える 2

2

まず、ラウンドではなくフロアを使用します。インデックスを長さにしたくありません。

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

次に、重複を回避する最も簡単な方法は、2 番目の数値が最初の数値と異なるまでループすることです。これは、もちろん、別のインデックスを作成する必要があることを意味します:

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;
于 2013-03-21T22:26:56.420 に答える
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]; 

}
于 2013-03-21T22:34:50.033 に答える