0

JavaScript の基礎にまだ取り組んでいます。次のコードは正しい画像と属性を出力しますが、画像をランダム化したいのですが、その方法がわかりません。Fisher-Yates shuffle の使用に関する他の記事を見つけましたが、それを実装することができないようで、それが正しい決定であるかどうかはわかりません。

var counter = 0;
var pictures = new Array();

    pictures[counter++] = ['http://example.com','img/pic1.jpg','Pic Logo'];
    pictures[counter++] = ['http://example2.com/','img/pic2.jpg','Pic 2 Logo'];
    pictures[counter++] = ['http://example3.com/','img/pic3.jpg','Pic 3 Logo'];

    function showImages() {
        var i = 0;
        for (var p = pictures.length-1; p >= 0; p--) {
            document.write('<div class="images"><a href="' + pictures[p][0] + '"><img src="' + pictures[p][1] + '" alt="' + pictures[p][2] + '" title="' + pictures[p][2] + '"  /></a></div>');
            i++;
        }
    }

編集:元のコードと同様に、写真配列内の特定のアイテムにアクセスするにはどうすればよいですか? - http://jsfiddle.net/chris_s/eW9Tm/

4

1 に答える 1

1

Jonas Silva のshuffle関数を使用して、配列をランダム化できます。

//+ Jonas Raoni Soares Silva
//@ http://jsfromhell.com/array/shuffle [v1.0]
function shuffle(o){ //v1.0
    for(var j, x, i = o.length; i; j = parseInt(Math.random() * i), x = o[--i], o[i] = o[j], o[j] = x);
    return o;
};

次のように呼び出しますshuffle(pictures);

于 2013-02-11T18:13:46.843 に答える