我有一些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),并将正确的图像附加到{ {1}}? (我希望每张图片有25%的几率被选中)
提前感谢您的时间!
答案 0 :(得分:4)
您正在使用assign运算符(=)
而不是比较运算符(==)
。此外,您可以使用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';
}
答案 1 :(得分:3)
我建议将图片放在一个数组中。
然后你可以抓住这样的随机图片:
var pics= ['1.jpg', '2.jpg', '3.jpg', '4.jpg'],
picnumber = Math.floor((Math.random() * pics.length));
img.src= pics[picnumber];
答案 2 :(得分:1)
试试这个:
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';
}
}
}