3

imgArray からランダムな画像を選択して、同時に 16 の異なる画像を印刷したいのですが、imgRandom 関数を埋めることができません。

img = new imgArray(7);
img[0]='1.png';
img[1]='2.png';
img[2]='3.png';
img[3]='4.png';
img[4]='5.png';
img[5]='6.png';
img[6]='7.png';
img[7]='8.png';

var rand=imgArray[math.floor(math.random*imgArray.length)];

function imgRandom(){

}
4

3 に答える 3

10

この機能を試す

function getRandomImage(imgAr, path) {
    path = path || 'images/'; // default path here
    var num = Math.floor( Math.random() * imgAr.length );
    var img = imgAr[ num ];
    var imgStr = '<img src="' + path + img + '" alt = "">';
    document.write(imgStr); document.close();
}

関数を呼び出す

getRandomImage(ARRAY-VARIABLE, '/images/')

ライブデモを参照してください。更新するたびに画像が変化します

于 2012-12-22T16:12:26.660 に答える
2

あなたのコードには指摘したいことがいくつかあります

  • imgArrayデフォルトではjavascriptにはありません(おそらくあなたのコンストラクターです)
  • あなたが欲しいArray

  • Javascript では大文字と小文字が区別Mathされ、js のオブジェクトには大文字の M が含まれます

    • math->Math
  • オブジェクトのrandomプロパティはMath、乱数を返すために呼び出す必要があります
    • random->random()
    • Math.random()

しかし、あなたの質問に

  1. 関数はパラメーターを受け取るため、画像の配列に対して 1 つのパラメーターを受け取ることができます

    function (imgArr) {...
    これにより、渡されたパラメーターにアクセスできますimgArr

  2. 関数は値を返すことができるので、Math.random先に進むことができます

    function (imgArr) { return imgArr[Math.floor(Math.random() * imgArr.length)] }

  3. 配列を「薄暗くする」必要はなく、配置する要素を事前に定義する必要はありません。sth を実行するだけです。お気に入り

    var imgArr = ["img01.png","img02.png",...]
    そしてvar arr=[]等しいだろうvar arr = new Array()

  4. したがって、配列でこの関数を呼び出すと、次のようになります


  var img = ["1.png", "2.png", "3.png", "4.png", "5.png", "6.png", "7.png", "8.png"]
     function imgRandom(imgArr) {
        return imgArr[Math.floor(Math.random() * imgArr.length)];
    }
 console.log(imgRandom(img));
于 2012-12-22T16:29:44.233 に答える