2016-05-26 5 views
0

すべての引数を一緒に追加する関数を作成しようとしています。私はNaNを得続けます。私は間違って何をしていますか?すべての引数を追加するときにNaNを取得するのはなぜですか?

function sum() { 
     var n = arguments.length; 
     var total = 0; 
    for(var i = 0; i < n; i++) { 
     // code here 
     total += n[i]; 
    } 
    return total; 
} 

sum(1,2,3,4); 
+0

'はconsole.log(n)を働くのに役立つ未定義。 console.log(n [i]); ' – epascarello

答えて

2

あなたはnだけの数がundefinedなりますargumentsn[i]の長さを保持しているarguments、から値を取得する必要があります。 undefinedの結果はNaNである。

function sum() { 
 
    var n = arguments.length; 
 
    var total = 0; 
 
    for (var i = 0; i < n; i++) { 
 
    // code here 
 
    total += arguments[i]; 
 
    } 
 
    return total; 
 
} 
 

 
console.log(sum(1, 2, 3, 4));

1

n[i];は何ですか? nには、引数の長さが含まれている必要があります。array、それ自体はarrayではありません。あなたはJavascriptの古典的な欠点のtotal += arguments[i];

0

一つでtotal += n[i];を交換する必要が

はNaN(非数)の基本原理についてです。

はNaN(何も等しくない) - >それは未定義または誤操作の I)結果

II)有毒発生した場合:入力とナンを持つ任意の算術演算は、結果としてNaNになります。コード中のSO

:(N [I])+数= NaNに

<script> 

     function sum() { 
      var n = arguments.length; 
      var total = 0; 
      for (var i = 0; i < n; i++) { 
       // code here 
       total += arguments[i]; 
      } 
      return total;//returns 10 
     } 
     sum(1, 2, 3, 4); 

ホープこれは/を目的

関連する問題