開発環境
- OS X Mavericks - Apple(OS)
- Emacs (CUI)、BBEdit - Bare Bones Software, Inc. (GUI) (Text Editor)
- Safari、Firefox + Firebug (Webプラウザ、プラグイン)
- JavaScript (プログラミング言語)
- jQuery (JavaScript Library)
『初めてのJavaScript 第2版』(シェリー・パワーズ著(Shelley Powers著)、武舎 広幸+武舎 るみ訳、オライリージャパン、2009年、ISBN978-4-87311-425-5) の5章(関数)、練習問第5-1、5-2を解いてみる。
その他参考書籍
練習問第5-1、5-2
コード(BBEdit)
var result = '', n = parseInt($('#t0').val(), 10), calcFactorialRecursively = function (n) { if (n < 0){ throw { type: 'エラー', message: '自然数を指定してください' }; } if (n <= 1){ return 1; } return n * calcFactorialRecursively(n - 1); }, calcFactorialWithLoop = function (n) { var result, i; if (n < 0){ throw { type: 'エラー', message: '自然数を指定してください' }; } result = 1; for (i = 2; i <= n; i += 1) { result *= i; } return result; }, nums = $('#t1').val().split(',').map(function (e) { return parseInt(e, 10); }), convertNumberToWago = function (nums) { var result = [], i, max; for (i = 0, max = nums.length; i < max; i += 1) { switch (nums[i]) { case 0: result.push('れい'); break; case 1: result.push('ひとつ'); break; case 2: result.push('ふたつ'); break; case 3: result.push('みっつ'); break; case 4: result.push('よっつ'); break; case 5: result.push('いつつ'); break; case 6: result.push('むっつ'); break; case 7: result.push('ななつ'); break; case 8: result.push('やっつ'); break; case 9: result.push('ここのつ'); break; default: result.push('?'); } } return result; }, wagos = convertNumberToWago(nums), i, max; result += 'calcFactorialRecursively('+ n + ') = ' + calcFactorialRecursively(n) + '\n' + 'calcFactorialWithLoop(' + n + ') = ' + calcFactorialWithLoop(n) + '\n' + wagos; $('#pre0').text(result);
0 コメント:
コメントを投稿