避免重复使用随机图像阵列 - 首先循环显示所有图像

时间:2014-12-09 16:36:34

标签: javascript arrays

我已经在这里和其他地方寻找帮助但没有成功。发生了什么:相同的图像将连续显示多次。我想要发生的事情:所有图像将在重新开始之前随机显示,以显示已经显示的图像。

非常感谢任何帮助。

var total_images = 4;
var random_number = Math.floor((Math.random()*total_images));
var random_img = new Array();
random_img[0] = '<a href="/page1"><img src="/images/img1.png"></a>';
random_img[1] = '<a href="/page2"><img src="/images/img2.png"></a>';
random_img[2] = '<a href="/page2"><img src="/images/img3.png"></a>';
random_img[3] = '<a href="/page3"><img src="/images/img4.jpg"></a>';
document.write(random_img[random_number]);

1 个答案:

答案 0 :(得分:0)

几天前我写了一个功能。将random_img传递给它并使用结果。 (注意,这使用lodash,所以如果你想避免使用你自己的随机数系统)。

var jumble = function(arr) {
    var len = arr.length
    var newArr = [];
    arr.forEach(function(n) {
        var rand = _.random(len-1);
        while (newArr[rand] != undefined) {
            // find next unused place in newArr
            rand = (rand + 1) % len;
        }
        newArr[rand] = n;
    });
    return newArr;
};