JavaScript - 重复函数,列出一定范围内的 'n' 个随机数,不重复

标签 javascript random repeat no-duplicates

我正在尝试使用 this 创建动画响应式图像网格。

在它的源代码中,您可以看到这些图像的代码是单独键入的,而不是使用重复“n”次的函数。如果您有很多图片要列出,那么重复是令人痛苦的。

因此,我创建了这个函数:

function showImg() {
  for (var imgNum = 1; imgNum < 100; imgNum++) {
    document.write("<li><a href='#'><img src='img/" +imgNum+ ".jpg'/></a></li>");
  }
}

showImg();

这个功能很好,但是,每次刷新页面时,它都会以相同的顺序开始显示相同的图像。我不想那样。我希望他们在每次刷新页面时都从随机图像开始。所以我为此创建了一个新代码:

function showImg() {
  var imgNum = Math.floor((n+1)*Math.random());
  document.write("<li><a href='#'><img src='img/" +imgNum+ ".jpg'/></a></li>");
}

var n = 100;

for (var i=0; i<n; i++) {
  showImg();
}

太棒了!现在,一个新问题是有时会出现重复。我不想要重复,不是在加载第一组图像时,也不是在图像开始旋转/循环动画时。我该如何实现这一目标?谢谢。

最佳答案

创建一个包含 1-100 数字的数组。然后“打乱”它们:500 次,选择 2 个数组元素并交换它们的值。最后,循环访问该乱序数组,并显示与该数组元素的值关联的图像。

关于JavaScript - 重复函数,列出一定范围内的 'n' 个随机数,不重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22824960/

相关文章:

r - 如何为每个分组元素选择随机的非连续日期?

random - 随机数生成器的上限

python - 如何使用Python中的函数连续扩展列表?

javascript - 优化 Jade 包装

javascript - Jquery - 禁用文本框,但仍捕获该区域的点击事件

java - 无法对非静态方法 nextInt() 进行静态引用

delphi - Delphi 中重复直到中使用的函数 Sleep() 的奇怪行为

javascript - 多复选框javascript检查状态检测

javascript - 无法通过 javascript 从输入字段中选取值

repeat - 是否可以在因子代码中创建重复函数?