我正在为大学做一个网站项目,我想在网站上显示三张图片。我的文件夹中存储了10张图片(全部名为“slika 1到10”,脚本有三个变量,所有这些变量随机生成1到10之间的数字,然后显示图片“slika”+ randomNumber。
我如何检查所有三个变量是否不同,以便每当我刷新网站时这三张图片总是不同。
JS代码:
window.onload=odaberiSliku;
var broj1=Math.floor(Math.random() * 10) +1;
var broj2=Math.floor(Math.random() * 10) +1;
var broj3=Math.floor(Math.random() * 10) +1;
function odaberiSliku() {
document.getElementById("slika1").src = "slike/randomslike/slika"+broj1+".jpg";
document.getElementById("slika2").src = "slike/randomslike/slika"+broj2+".jpg";
document.getElementById("slika3").src = "slike/randomslike/slika"+broj3+".jpg";
}
如果有人想知道,变量名称都是克罗地亚语。
答案 0 :(得分:2)
虽然Lux's answer完全正常,但如果您(1)生成 n 长度的动态列表和/或(2)如果列表变得非常大,则它不可扩展。
有一种更简单的方法可以实现您打算做的事情。您基本上试图生成唯一的随机数 - 这类似于生成一个唯一的增量数字数组并将它们混洗。
我认为这种方法可以更好地为您提供服务,而不是通过对每个随机生成的数字进行测试的试错法,我相信这种方法会更好。
您只需要:
概念验证代码如下:
var imageCount = 10,
arr = new Array(imageCount).join().split(',').map(function(item, index) {
return ++index;
}),
shuffle = function(a) {
var j, x, i;
for (i = a.length; i; i -= 1) {
j = Math.floor(Math.random() * i);
x = a[i - 1];
a[i - 1] = a[j];
a[j] = x;
}
};
// Shuffle the array
shuffle(arr);
// Get first 3 elements
var sliced = arr.slice(0, 3);
// Iterate through first 3 elements, and assign image source
for (var i = 0; i < sliced.length; i++) {
document.getElementById("slika" + i).src = "slike/randomslike/slika" + sliced[i] + ".jpg";
}
答案 1 :(得分:1)
在生成变量后,请检查它:
{{1}}