2012-01-15 55 views
0

所以,我已經準備好了我的代碼來生成並打印一個介於「-20和20」之間的隨機數字。指定圖像爲隨機數字範圍

我想做什麼,這就是我被卡住的地方,是指定4個不同的圖像到我的總範圍「-20到20」之間的數字範圍內。

例如:

  • image1.gif會之間被分配給任何隨機# 「-20和-10」
  • image2.gif分配給 「-9和0」
  • image3.gif「1和10 「
  • image4.gif 」11和20「

任何建議多開山鼻祖ED!

編輯: 因此,根據喬恩的回答,我已經將最後兩行改爲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

你是什麼意思分配一個圖像的隨機數(即他們應該如何鏈接)?看來你必須將你的公式改爲四個不同的公式,以便在你描述的四個範圍內生成數字。 – pimvdb 2012-01-15 16:25:01

+1

如何在1和4之間生成一個數字,因爲所有這些間隔都具有相同的大小? – TimWolla 2012-01-15 16:29:33

+0

你如何將你的數字在-20和20之間除以10,然後加2? (或者加20,然後除以10.) – Pointy 2012-01-15 16:33:56

回答

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

+0

非常感謝您的意見!我發現這個特定的代碼對我來說很有用。我怎麼會試圖改變警報彈出窗口來顯示根目錄中的實際圖像?即:「document.write('');」 – fizd 2012-01-15 17:58:04

+0

@fizd:像''images /「+ ranges [i] .image'這樣的文件路徑。您還應該使用另一種不同於'document.write'的方法來顯示圖像;見例如http://stackoverflow.com/questions/5451445/how-to-display-image-with-javascript – Jon 2012-01-15 22:02:58

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() 
+0

這也很好。謝謝! – fizd 2012-01-15 17:51:20