<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>雙色球</title> <link rel="stylesheet" type="text/css" href="css/twoToneClass.css"> </head> <script type="text/javascript"> function getway(){ //定義一個數組 用來裝紅色球的隨機數 var reds=[parseInt(Math.random()*33+1)]; //1-33的隨機數 //定義一個數組 用來裝藍色球的隨機數 var blues=[parseInt(Math.random()*16+1)]; //1-16的隨機數 while(reds.length<6){ //雙色球是6紅1藍,故長度小於6 說明會循環5次 因為前面reds已經有一次的默認值 var r=parseInt(Math.random()*33+1); //定義r 隨機數的取值與reds一致 用於與reds作比較 for (var i = 0; i < reds.length; i++) { if (reds[i]==r) { //若 reds中的隨機值與r中的相等,則跳出,繼續i++取值 break; //若reds中的隨機值與r中的不相等,則進入else if } else if(i==reds.length-1){ //reds.length-1 --> 原先的reds.length為5,減1為4,而數組是從0 開始算,所以這里會循環5次,剛好與 reds.length<6 同步;且 i等於reds.length-1,是讓隨機數循環5次(另外就是讓它找到定義中的最后一位數) reds.push(r); //將r中的值添加到reds中 push():向數組中添加元素 //值得注意是!r與reds作比較時,是以reds中現有的數作比較,因為 reds.push(r); 這句代碼已經向reds中添加了數值,所以r不是以reds中自身產生的隨機數作比較,而是原先r添加到reds中的值作比較 } } } //document.write(reds); //排序 reds.sort(function compare(a,b) { return a-b; }) //打印隨機數 for (var h = 0; h < reds.length; h++) { document.getElementById('tone'+h+'').innerHTML=reds[h]; } document.getElementById('tone6').innerHTML=blues; } </script> <body> <div id="tone0"></div> <div id="tone1"></div> <div id="tone2"></div> <div id="tone3"></div> <div id="tone4"></div> <div id="tone5"></div> <div id="tone6"></div> <button type="button" id="cilckMe" onclick="getway()">點我生成雙色球</button> </body> </html>