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 になるのはなぜzeroですか?

背後にある理由が本当にわかりません。

私はbackbone.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 に答える