指定の個数の値をランダムに返す
javascriptで乱数とか使った事無かったんで、練習がてらなんとなく作ってみた。
1〜xの範囲の数からy個の数をランダムに返す
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="ja"> <head> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <meta http-equiv="Content-Script-Type" content="text/javascript"> <meta http-equiv="Content-Style-Type" content="text/css"> <style type="text/css"> #test { empty-cells: show; border-collapse: collapse; } #test td { border: solid 1px #dcdcdc; width: 2em; height: 2em; text-align: center; } </style> <script type="text/javascript"> //dn … 母数。例えば「10」を渡すと、1〜10の範囲になる。 //nm … 返す個数 function RandomNumber(dn, nm) { if (nm > dn) { return false; } var obj = {}; var tmp = []; var rtn = []; for (var i = 0; i < dn; i++) { var rnd = Math.random(); obj[rnd] = i + 1; tmp[i] = rnd; } tmp.sort(); for (var i = 0; i < nm; i++) { rtn[i] = obj[tmp[i]]; } return rtn; } function test() { var hoge = RandomNumber(10, 3); if (!hoge) { return false; } for (var i = 0; i < hoge.length; i++) { document.getElementById('row' + (i + 1)).innerHTML = hoge[i]; } } </script> <title>test</title> </head> <body> <p>1〜10の数の中から3つの値をランダムに返します。</p> <p><input type="button" value="click!" onclick="test();"></p> <table id="test"> <tr><td id="row1"></td></tr> <tr><td id="row2"></td></tr> <tr><td id="row3"></td></tr> </table> </body> </html>