開発環境
- 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 コメント:
コメントを投稿