配列内のデータをシャッフルする |
Internet Explorer | Netscape Navigator | Opera | iCab | Safari | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
3.0x | 4.0x | 4.5 | 5.0x | 5.5 | 6.0 | 2.0x | 3.0x | 4.0x | 4.x | 6.0 | 7.0 | 6 | 7 | 2.x | 1.x | |
Windows | ○ | ○ | - | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | - | |
Macintosh | ○ | ○ | ○ | ○ | - | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | |
UNIX | - | - | - | - | - | ○ | ○ | ○ | ○ | ○ | ○ | - | - | - |
ポイント | n1 = Math.floor(Math.random() * 52); n2 = Math.floor(Math.random() * 52); n = data[n1]; data[n1] = data[n2]; data[n2] = n; |
---|---|
説 明 | 配列内のデータをシャッフルするには、乱数を使って回数分だけ配列内容を入れ替えます。サンプルでは52枚のトランプに数字が割当られているものとし100回シャッフルしています。 |
サンプル | <html> <head> <title>シャッフル</title> </head> <body> <script language="JavaScript"><!-- data = new Array(); for (i=0; i<52; i++) data[i] = i; for (i=0; i<100; i++) // 100はシャッフルする回数 { n1 = Math.floor(Math.random() * 52); n2 = Math.floor(Math.random() * 52); n = data[n1]; data[n1] = data[n2]; data[n2] = n; } // 結果表示 for (i=0; i<52; i++) document.write(data[i]+"<br>"); // --></script> </body> </html> |
補足説明 | なし |
■サンプルスクリプトを実行する >>実行 ■各ブラウザでの動作結果を見る >>View! |