0

ユーザーが入力 question にアクセスできる関数を作成する必要があり、さまざまな結果を表示できます。マジックエイトボールシミュレーションです。配列を使用する必要がありますが、画像でこれを行う方法がわかりません。

これが私が今持っているものです。

function eightBall() {
            var answer = document.getElementById('questBox').value;
            answer = answer.toLowerCase();

            if (answer.search(/[?]/) > -1) {
                var no = '../images/eightBallNo.png';
                $('#answerImages').html(no);
            }
        }

これを行う方法がわからないので、助けていただければ幸いです。さらに、ユーザーが同じ質問を入力すると、常に同じ結果が返されるようにする必要があります。私の指示は、ifステートメントを介してこれを行うことでした。繰り返しますが、どんな助けでも大歓迎です。

4

2 に答える 2

1

オブジェクトを使用してマップを作成し、各質問と結果のランダム メイジをそこに保存します。誰かが質問をしたときは、その質問を何かに既にマップしているかどうかを確認してください。その場合は、キャッシュされた結果を使用します。そうでない場合は、配列からランダムな画像を取得し、それをキャッシュに追加します。

// empty cache to use
var answerMap = {}
// array of your images
var images = ['image_1.png', 'image_2.png', ... 'image_n.png'];

function eightBall() {
   var imageToUse = false;
   var answer = document.getElementById('questBox').value;
   answer = answer.toLowerCase();
   // this syntax could be wrong, I forget the check as my JS is rusty
   // check the cache to see if we got asked this before
   if (answerMap[answer] != undefined) {
      // if so, use the cached image value
      imageToUse = answerMap[answer];
   } else {
      // otherwise, get a random image, and add it to the cache
      var randomIndex = Math.floor(Math.random()*images.length);
      imageToUse = images[randomIndex];
      answerMap[answer] = imageToUse;
   }
   // do whatever you need to do with the image
}
于 2013-03-01T18:40:18.600 に答える
0

次のように、IMG タグでその URL を使用します。

var no = '../images/eightBallNo.png';
$('#answerImages').html('<img src='+no+'/>');

ただし、これは配列を使用しません。どこで配列を使用する必要がありましたか? 画像の URL の配列?

于 2013-03-01T18:35:09.920 に答える