2015-06-18 86 views
0

JavaScript noob here ...爲什麼這會返回NaN而不是數字?

我試圖循環訪問一個數組並將這些值加在一起。這是我的:

var totalXyz; 
var arrayLength = data.length; 
for (var i = 0; i < arrayLength; i++) { 
    totalXyz += parseInt(data[i]["xyz"]); 
} 
alert(totalXyz); 

該警報返回NaN而不是總數。我究竟做錯了什麼?我已經檢查過數據數組包含我想要添加的數字。只需要現在添加它們。

謝謝!

+0

確保所有數據[i] ['xyz']存在並且有有效數字/字符串 – fuyushimoya

回答

4

你需要totalXyz是一個數字開始:

var totalXyz = 0; 

在你的代碼沒有初始化它,所以它是undefined,並undefined外加任意數量給你NaN

+0

Doh!謝謝,那有效。 – user4951834

0

在添加之前,您最初沒有指定totalXyz的數值。

所以這樣的:

var totalXyz; 
totalXyz += parseInt(data[i]["xyz"]); 

類似於:

totalXyz = undefined + parseInt(data[i]["xyz"]); 

其中產量NaN因爲undefined +數= NaN

你需要做之前初始化的totalXyz數值計算。

相關問題