我尝试迭代集合,如下所示
var debitAmountTcyTotal = 0;
var debitAmountPcyTotal = 0;
_.each(JournalVoucherView.journalVoucherDebitCollection.models, function(data) {
if (data) {
debitAmountTcyTotal = parseFloat(debitAmountTcyTotal) + parseFloat(data.get("amountTcy"));
debitAmountPcyTotal = parseFloat(debitAmountPcyTotal) + parseFloat(data.get("amountPcy"));
}
});
$('#journalvoucher-debit-amountTcy-total').text(parseFloat(debitAmountTcyTotal));
$('#journalvoucher-debit-amountPcy-total').text(parseFloat(debitAmountPcyTotal));
但是当集合没有值时,以下内容变为NaN
debitAmountTcyTotal
debitAmountPcyTotal
但是我用zero
初始化了上面的变量,为什么当我将它设置为zero
时它变为NaN?
我真的不明白背后的原因。
我使用backbone.js
答案 0 :(得分:2)
您正在使用
覆盖零值debitAmountTcyTotal = parseFloat(debitAmountTcyTotal) + parseFloat(data.get("amountTcy"));
据推测,parseFloat(data.get("amountTcy"))
是NaN
0 + NaN
是NaN
答案 1 :(得分:2)
99%data.get("amountTcy")
还原NaN
或值,无法转换为数字。正常值(零)+ NaN始终是NaN。
此外,您不需要对已经是数字的值调用parseFloat(例如debitAmountTcyTotal
)。