我有一些Javascript,它选择1到10之间的随机数,然后根据选择的随机数是否大于5将两个图像中的一个加载到img.src =
中。
这是我的代码:
if ((Math.random() * 10) + 1 > 5) {
img.src = '1.jpg';
} else {
img.src = '2.jpg';
}
这非常适合 2 张图像,但是我现在希望它从 4 张图像中进行选择。
我尝试使用上面的代码做一个嵌套的if语句,但我意识到我正在运行Math.random的多个实例,这违背了目的。
因此,我尝试在开始时使用 Math.random 定义一个变量,然后编写一个嵌套的 If 语句,如下所示:
var picnumber = Math.floor((Math.random() * 4) + 1);
if (picnumber = 1){
img.src = '1.jpg';
} else {
if (picnumber = 2){
img.src = '2.jpg';
}
else {
if (picnumber = 3){
img.src = '3.jpg';
}
else {
img.src = '4.jpg';
}
}}
我已经运行了 20 多次此代码,它不断加载相同的图像、图像“1.jpg”
。我想我在这里做了一些非常基本的错误,我如何确保var picnumber
将被分配一个随机数(1、2、3 或 4),并将正确的图像附加到img.src
?(我希望每张图片都有 25% 的机会被选中)。
提前感谢您的时间!
您使用的是分配运算符(=)
而不是比较运算符(==)
。此外,您可以使用 elseif
,这样你就不需要在 else 语句中放置一个新的 if:
var picnumber = Math.floor((Math.random() * 4) + 1);
if (picnumber == 1){
img.src = '1.jpg';
} else if (picnumber == 2) {
img.src = '2.jpg';
} else if (picnumber == 3) {
img.src = '3.jpg';
} else {
img.src = '4.jpg';
}
我建议将图片放在一个数组中。
然后,您可以像这样随机抓取图片:
var pics= ['1.jpg', '2.jpg', '3.jpg', '4.jpg'],
picnumber = Math.floor((Math.random() * pics.length));
img.src= pics[picnumber];
试试这个:
var picnumber = Math.floor((Math.random() * 4) + 1);
if (picnumber == 1) {
img.src = '1.jpg';
} else {
if (picnumber == 2) {
img.src = '2.jpg';
} else {
if (picnumber == 3) {
img.src = '3.jpg';
} else {
img.src = '4.jpg';
}
}
}