javascript - 从数组中随机选择图像

标签 javascript jquery math random

我在一个目录中有图像,我正在尝试使用 jQuery 将它们随机分配给列表项。我让它工作,但我不想重复图像,如果它们已经被使用过的话。这是我的 jquery:

var images = ['1.jpg', '2.jpg', '3.jpg', '4.jpg', '5.jpg', '6.jpg', '7.jpg', '8.jpg', '9.jpg', '10.jpg'];

$("#collageWrap li").each(function() {
    $('<img src="images/mosaic/' + images[Math.floor(Math.random() * images.length)] + '">').appendTo($(this));
});

如果我有 10 张图片和 20 个列表项,我的想法是在前 10 个列表项上使用这 10 张图片,然后将其余的留空。如何更改此代码以确保每张图片仅使用一次?

最佳答案

一个解决方案是在随机拍摄图像时从源数组中删除:

$("#collageWrap li").each(function() {
    var index = Math.floor(Math.random()*images.length);
    var img = images.splice(index, 1)[0];
    $('<img src="images/mosaic/' + img + '">').appendTo($(this));
    return images.length>0;
});

关于javascript - 从数组中随机选择图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15819461/

相关文章:

javascript - 通过 AJAX 加载渲染的 HTML 来应对 XSS 的安全做法不好吗?

jquery - 从与显示的不同的文本字段提交值

javascript - 如何使用 jquery 切换 3 种背景颜色

javascript - 如何转换 x,y 坐标以使用绝对显示?

javascript - 更准确的 Pi 值?

javascript - 更改 SlickGrid 表的行背景颜色。

javascript - 在 JavaScript 中创建时间点数组

javascript - 如何在 native Javascript 中创建一个元素并将现有元素移动到其中?

javascript - Jquery 滚动动画滚动到 div 的底部而不是顶部

c++ - e的计算验证