Как заставить мою функцию Javascript правильно использовать входное значение? - PullRequest
0 голосов
/ 04 мая 2020

Моя функция правильно использует первый экземпляр 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);

Ответы [ 2 ]

0 голосов

В соответствующем определении переменной:

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

и при использовании вызова функций:

Number(vLevel.value)
0 голосов
/ 04 мая 2020

Разобрался. fHitPoints дает значение 124 без части '+ vLevel + 10'. Буквально потребовалось 124 + 50 + 10 и возвращено 1245010. Я чрезвычайно новичок в кодировании, поэтому я пока мало что знаю о типах данных.

по какой-то причине fStat выполняет математику правильно, но я думаю, что смогу решить ее отсюда.

...