如何使我的Javascript函数正确使用其输入值



我的函数正确地使用了var vLevel的第一个实例,但在最后再次包含vLevel时返回了一个错误的大值。如果我用数字50替换第二个vLevel,函数将返回正确的值。输入值被强制设置为50,目前仅用于测试目的。

这是我的输入部分:

<th id='00'>Lv.<input id='iLevel' type='number' min='2' max='100' value= '50'></th>

相关变量定义:

var vLevel = document.getElementById('iLevel').value;

和功能:

function fHitPoints(baseStat, iv, ev, vLevel){
return Math.floor((((baseStat*2 + iv + Math.floor(ev/4))*vLevel)/100) + vLevel + 10);
}

所有其他变量都可以正常工作。如果有帮助,该功能是以下循环的一部分:

var i = 0
var j = 0
while (j<17){
while (i<4){
if (i == 0) {
table.rows[i+1].cells[j+1].innerHTML =
fHitPoints(baseStat[j][i], iv[j][i], ev[j][i], vLevel);
i++;
} else {
table.rows[i+1].cells[j+1].innerHTML =
fStat(baseStat[j][i], iv[j][i], ev[j][i], vLevel, nature[j][i]);
i++;
}
}
i = 0
j++
}

fStat函数:

function fStat(baseStat, iv, ev, vLevel, nature){
return Math.floor((Math.floor(((baseStat*2 +
iv + Math.floor(ev/4))*vLevel)/100) + 5)*nature);

想明白了。fHitPoints给出的值124没有"+vLevel+10"部分。它实际上是拿下124+50+10,然后返回1245010。我对编码非常陌生,所以我对数据类型还不太了解。

出于某种原因,fStat计算正确,但我想我可以从这里解决它。

在相关变量定义中:

var vLevel = document.getElementById('iLevel');

以及在函数的调用使用中:

Number(vLevel.value)

相关内容

  • 没有找到相关文章

最新更新