javascriptで引数数分の足し算を行うコードを書いているのですが、上手くいきません。
※javascripの本格入門 の本を見ながら写経しているレベルですのでご了承下さいませ。
本で書かれていたコード
function sum() { var result = 0; //与えられた引数を順番に取り出し、順に加算処理 for (var i = 0 , len = arguments.lenght; i < len; i++){ var tmp = arguments[i]; if (typeof tmp !== 'number') { throw new Error('数値じゃないよ' + tmp); } result += tmp; } return result; } try { console.log(sum(1, 3, 5, 7, 9));//25 } catch(e) { console.log(e.message); }
↑こちらだと結果が0になります。
function sum() { var result = 0; //与えられた引数を順番に取り出し、順に加算処理 for (var i = 0; i < arguments.length; i++) { var tmp = arguments[i]; if (typeof tmp !== 'number') { throw new Error('数値じゃないよ' + tmp); } result += tmp; } return result; } try { console.log(sum(1, 3, 5, 7, 9));//25 } catch(e) { console.log(e.message); }
↑こちらは25の合計が表示されます。こちらが求めている回答です。
違いは以下になります。
0になる方
for (var i = 0 , len = arguments.lenght; i < len; i++){
25になる方
for (var i = 0; i < arguments.length; i++) {
どちらも i に0を代入して 引数の回だけ足すのかと思いますが、何が原因で
for (var i = 0 , len = arguments.lenght; i < len; i++){
の方は上手くいかないのでしょうか?
lenに代入して数値ではなく文字列に変わってしまうとか。? ぱっと見る限り同じような気がするですが。。。
宜しくお願いします。
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/03/30 07:28
2017/03/30 12:57