仍然致力于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/
答案 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);
。