所以,我已经准备好了我的代码来生成并打印“-20到20”之间的随机数。
我想做什么,这就是我被困住的地方,是将4个不同的图像分配到我的总范围“-20到20”之间的数字范围内。
例如:
image1.gif
将被分配给“-20和-10”image2.gif
分配给“-9和0”image3.gif
至“1和10”image4.gif
至“11 and 20”欢迎任何建议!
编辑: 所以基于Jon的回答,我已经将最后两行更改为document.write,并且我试图将实际图像显示在文本输出上方。然而,我知道IMG.SRC中有一条错误的路线。如果我的图像位于我的根目录中,那么需要改变什么呢?提前谢谢。
<html>
<title>RANDOM IMAGE TO NUMBER RANGE</title>
<body>
<center>
<script language="javascript" type="text/javascript">
var ranges = [
{ from: 11, image: "image4.jpg" },
{ from: 1, image: "image3.jpg" },
{ from: -9, image: "image2.jpg" },
{ from: -20, image: "image1.jpg" }
];
var random_num = (Math.round((Math.random()*41)+-20));
var image = "default";
for(var i = 0; i < ranges.length; ++i) {
if(random_num >= ranges[i].from) {
image = ranges[i].image;
break;
}
}
document.write("Number: " + random_num + " parts, " + " Imagetitle: = " + image);
document.write('<img src="'+ranges[image]+'">');
</script>
<br></br>
<div>
CLICK <a href="javascript:history.go(0);">REFRESH or F5</a> FOR A RANDOM IMAGE on NUMBER-RANGE.
</div>
</center>
</body>
</html>
答案 0 :(得分:0)
将范围放在数组中并迭代它以查找您所在的范围:
// IMPORTANT: array is sorted in descending "from" order!
var ranges = [
{ from: 11, image: "image4" },
{ from: 1, image: "image3" },
{ from: -9, image: "image2" },
{ from: -20, image: "image1" }
];
var random_num = (Math.round((Math.random()*41)+-20));
var image = "default";
for(var i = 0; i < ranges.length; ++i) {
if(random_num >= ranges[i].from) {
image = ranges[i].image;
break;
}
}
alert("random_num = " + random_num + " / image = " + image);
这对于可能相同或不相等的区间可以正常工作,并且可以轻松地适应稍微复杂的区间定义。
<强> See it in action 强>
答案 1 :(得分:0)
使用参数(-20,-11),( - 10,-1),(0,9),(10,19)调用以下函数4次。
function get_rand_int(min, max) {
return Math.floor(min + Math.random() * (max - min + 1));
} // get_rand_int()