Моя функция правильно использует первый экземпляр var vLevel, но возвращает ошибочно большое значение, когда vLevel снова включается в конце. Если я заменю второй vLevel числом 50, функция вернет правильные значения. Значение ввода принудительно установлено равным 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);
}
Все остальные переменные работают нормально. Если это помогает, функция является частью следующей функции l oop:
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);