いまむぅの雑記帳

何でも書くブログのはずだったのですが、最近はハロスイ、ドラクエなどのゲームに特化しつつあります。特にハロスイは、「初日7連がガチャ結果報告」「サンリオキャラクターからの手紙」「イベント結果報告」などカテゴリーをさらに細分化してみました。

【実践!プログラミング】ロト6の当選番号を予想する(第2回) ~ソートして配列要素の重複を避ける

さて、不定期にお届けしている「実践!プログラミング」、今回は「ロト6の当選番号を予想する」の第2回です。

前回、乱数によりロト6の番号を予想するJavaScriptを書いてみました。

imamuu.net

でも、このプログラムには大きく2つ不満点がありました。

ひとつは、番号がソートされていないので、ロト6の申込カードに予想番号をマークしにくいという点、そしてもう一つは、乱数ですので、数字が重複する場合があるという点です。

この二つの不満点を解消したロト6当選番号予想サイトVersion2を作ってみました。

コードは以下の通りです。

 

コードの中身

配列要素に重複があったら、再度配列要素を作り直すことを考えたので、「do{}while()」文を使ってみました。

「do{}while()」文は()内の条件が真である間{}内の処理を繰り返すので、()内に重複有無の判定条件を入れてあります。

 

ソートですが、配列要素を並び替えるには「配列名.sort()」とすればよいのですが、このソートは、数値を文字列に変換してからソートするので、これだけだと、例えば[20,7,1]という配列を昇順にソートすると[1,20,7]になってしまうのだそうです。

その問題を解決する方法を使っていますが、正直MDNの解説を読んでもよく分からなかったのでMDNの関数をそのまま使っています(^^;

詳しくは以下のサイトをご覧になるか、テックアカデミー無料体験をどうぞ。

developer.mozilla.org