Player.prototype.d2 = function(ratingList, rdList) {
var tempSum = 0;
for (var i = 0; i < ratingList.length; i++) {
var tempE = this.e(ratingList[i], rdList[i]);
tempSum += Math.pow(this.g(rdList[1]), 2) * tempE * (1 - tempE);
}
return 1/Math.pow(q, 2) * tempSum;
};
これは問題のビットのようです。配列の長さが1の場合、配列の操作はNaNを返します。
ratingList
,rdList
およびoutcomeList
には1つの値しか含まれていないと、すべてうまく見えます。次にstuffはNaNに設定されます。私はインデックスを-1に変更しようとしましたが、比較をratingList.length - 1
に変更して、それを減らしてもfor
ループで試してみましたが、配列に1つの値しか含まれていないと常にNaNを返すようです。
for
ループを削除して、Array.map()
またはzipやそのような機能の構成で置き換える方法はありますか(私は確信しています。 d2
機能で
You can see ALL of the code here -- it's about 60 LOC
「値が1つしかない」とは、「ratingList = ["OneValue"] 'または' ratingList = "OneValue" 'を意味しますか? – Cipi
ratingList = [1400] –