2

我尝试像下面这样迭代集合

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为什么当我将它设置为 NaN 时它会变成 NaN zero

我真的不明白背后的原因。

我使用主干.js

4

2 回答 2

2

您正在用

debitAmountTcyTotal = parseFloat(debitAmountTcyTotal) + parseFloat(data.get("amountTcy"));

大概parseFloat(data.get("amountTcy"))NaN

0 + NaNNaN

于 2013-08-29T09:27:50.537 回答
2

99%data.get("amountTcy")的回报NaN或价值,无法转换为数字。正常值(零)+ NaN 始终是 NaN。

此外,您不需要在已经是数字的值上调用 parseFloat(例如debitAmountTcyTotal)。

于 2013-08-29T09:27:55.513 回答