2016-05-04 7 views
-1

変数がforループ内の整数になる可能性はあるのですが、ループのすぐ外でNaNになるのは不思議です。変数がJavaScriptのforループの外側のNaNになる

var sumNum = 0; 

for (var i = data.length - 1; i >=0; i--) { 
    sumNum += data[i].stored_value; 

    // check value inside loop 
    console.log(sumNum); 
} 

// check value outside loop 
console.log(sumNum); 

結果:我々は反復して配列にstored_value年代を足して 最初console.log(sumNum)プリントが整数を増やします。しかし、第2のconsole.log(sumNum)NaNを印刷します。

変数がループ内でインスタンス化されている場合、どのように起こるかを説明する関連スレッド(Variable becomes Nan when i try to use it outside of the .each function)を読みましたが、私の場合は変数がグローバルに最初に作成されます。

どのように起こる可能性について誰かが分かってもらえますか?

+0

'? – gurvinder372

+1

データの内容を教えてください。 –

+0

上記の場合は20未満です。 –

答えて

0

コードに次のように番号のチェックを追加し

if(isNaN(data[i].stored_value) == false) { 
    sumNum += data[i].stored_value; 
} 

あなたには、いくつかの変数に数値以外の値を追加します(一部の空白値であってもよい)場合、それがNaNになりますので

`データの長さを何であるか
関連する問題