2017-05-16 4 views
-1

そのために、質問を取得するたびにアップ混合し、アレイからの数字は、機能に対応してクイズを作るためにスタート私は数字の配列がある

をしようとしています。次に、それらの番号からランダムな順序を選びます。それらの数字は関数に対応し、関数は質問です。これを行う方法はありますか?私は10だけで、ちょうど助けてくださいjavascriptを開始した。事前に感謝します

答えて

1

さて、あなたの質問について少し考えてみましょう。

まず、関数に対応する数値の配列を考えてみてください。配列の数字が質問を表す関数に対応しているようなマッピングは、言語のフードの下で行われていることの多くに似ています!しかし、この場合は、関数ポインタから配列を作ることができるので、関数ポインタは必要ありません。関数ポインタは、記述したような組み込みの方法です。

それでは、いくつかの例の質問を作成してみましょう:

function Question1() { 
    window.alert("What is your favorite color?"); 
} 

function Question2() { 
    window.alert("What is your favorite animal?"); 
} 

ので、今、私たちはこのように、私たちの質問に呼び出すことができます。Question1()、その特定の質問の出力を持っています。これは、配列の使い方を説明するために、質問をするだけで、今のところ応答を取ることを扱っていないことに注意してください。

ここで配列から呼び出す方法はありますか?

a = [Question1, Question2]; 
a[0](); /* This calls question 1 */ 

だから今、私たちは(Mozillaのヘルパー機能付き)、ランダムな質問を選択するためにランドを使用することができます。

function getRandomInt(min, max) { 
    min = Math.ceil(min); 
    max = Math.floor(max); 
    return Math.floor(Math.random() * (max - min)) + min; 
} 

index = getRandomInt(0, a.length); 
a[index](); /* Calls a random question */ 

をそして、それはそれです!また、私は別の解説者がこれを解決するためにevalを使ったことはありませんが、これは間違いなく機能しますが、一般的に脆弱性のために良い方法ではありません。あなたがその方向に行くなら、you might want to look into it

+0

よく紹介!可能なフォローアップ:要素が質問テキストである 'questions'配列を宣言し、指定された質問テキスト配列の中からランダムな要素を取り出し、' alert'を介してその質問をする一般的な 'askRandomQuestion(questions)'関数を宣言します。 –

+0

また、OPは自然数1 ... nのランダム置換を指していて、重複した質問を避けるためにその順列によって与えられた順序でこれらの質問をすべて尋ねていたと思います。もしあなたが時間があれば、ちょっと話したいかもしれません:) –

+0

ありがとうsooそれは多く働いた!!!-) – HyperMonkey

関連する問題