随机化多个JavaScript数组

时间:2013-02-11 18:10:24

标签: javascript arrays random

仍然致力于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/

1 个答案:

答案 0 :(得分: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);