我有一些 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';
}
关于带有嵌套 If 语句的 Javascript 随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29683743/