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;
};
这似乎有点问题。
除非ratingList
,rdList
和outcomeList
仅包含一个值,否则一切似乎都很好。然后东西设置为NaN而不是。我已经尝试将索引更改为-1,将比较更改为ratingList.length - 1
,甚至尝试使用递减的for
循环,但如果数组只包含一个值,它似乎总是返回NaN。 / p>
有没有办法(我确定有 - 我想问题是如何)取消for
循环并将其替换为Array.map()
或zip或任何组合各种功能?
答案 0 :(得分:2)
在d2
函数中,您在for
循环中有这一行:
tempSum += Math.pow(this.g(rdList[1]), 2) * tempE * (1 - tempE);
因此,假设rdList
至少是2个元素,但bob
只有一个元素。
也许它必须是rdList[i]
?