JavaScriptで10の練習問題 #1

言語習得用の練習問題を、JavaScriptで出来るところだけ(仕様的な意味で)やってみます。

新しくプログラミング言語を覚えたいときに行うべき10の練習問題

自分ルール

  • 実行速度は気にしない・最適化しない
  • コードの短さ・綺麗さは気にしない
  • ネタ元の練習問題はあくまでもネタ元

こんな感じでゆる〜く。

まずは、一つ目

ナベアツに似ている。取り敢えずナベアツがやってみたいのでナベアツにする。

3の倍数と3が付く数字の時にアホになるオーソドックスなタイプ(数字は40で終る)。

  • ループで1〜40まで回す
  • 数値を文字列にせず頑張る
  • 2パターン考える

こんな感じでいってみましょー。

1.配列で無理やり感タップリなパターン
var study_01_a = function () {
    var ahos = [], str = '';
    ahos[3]  = 'さぁ〜ん';
    ahos[6]  = 'ろぉ〜く';
    ahos[9]  = 'きゅ〜う';
    ahos[12] = 'じゅ〜に';
    ahos[13] = 'じゅ〜さん';
    ahos[15] = 'じゅ〜ご';
    ahos[18] = 'じゅ〜はち';
    ahos[21] = 'にっじゅいち';
    ahos[24] = 'にっじゅし';
    ahos[27] = 'にっじゅなな';
    ahos[30] = 'さ〜んじゅ〜';
    ahos[31] = 'さ〜んじゅいち';
    ahos[32] = 'さ〜んじゅに';
    ahos[33] = 'さ〜んじゅさん';
    ahos[34] = 'さ〜んじゅし';
    ahos[35] = 'さ〜んじゅご';
    ahos[36] = 'さ〜んじゅろく';
    ahos[37] = 'さ〜んじゅしち';
    ahos[38] = 'さ〜んじゅはち';
    ahos[39] = 'さ〜んじゅきゅ';
    ahos[40] = 'よんじゅ〜!';
    for (i = 1; i <= 40; i++) {
        str += (ahos[i] ? ahos[i] : i) +"\n";
    }
    alert(str);
};

個人的にはこれがしっくり来る。

2.40以下が絶対条件のパターン
var study_01_b = function () {
    var aho, str = '';
    for (i = 1; i <= 40; i++) {
        aho = i - 30 >= 0 && i - 30 <= 9 ? 'すーぱーあほたいむ'
            : i % 3 == 0                 ? '倍数のあほ'
            : i - 10 == 3 || i - 20 == 3 ? '3が付くあほ'
            : '';
        str += i +':'+ aho +"\n";
    }
    alert(str);
};

40以下じゃないと即破綻する。


こんな感じで次回も頑張ってみたいと思います。