Я пытаюсь изменить содержимое страницы с помощью innerHTML, используя выходные данные определенной функции.
function euclid() {
var a = document.getElementById('a');
var b = document.getElementById('b');
var r = [a, b]
var j = 1, s = [1, 0], t = [0, 1], k = ["X"];
while (r[j] > 0) {
k.push(Math.floor(r[j-1] / r[j]));
r.push(r[j-1] - r[j]*k[j]);
s.push(s[j-1] - s[j]*k[j]);
t.push(t[j-1] - t[j]*k[j]);
j++;
}
var result = "gcd(" + a.value + ", " + b.value + ") = " + r[r.length - 2].value;
document.getElementById('res').innerHTML = result;
}
var go = document.getElementById('go');
go.addEventListener ('click', euclid, true);
<!DOCTYPE html>
<head>
<title>Euclids Algorithm</title>
</head>
<body>
<h2>Euclids Algorithm</h2>
gcd( <input type="number" id="a"> > <input type="number" id="b"> )
<button type="button" id="go">Go!</button>
<p id="res">To see the result please enter two numbers and press go.</p>
<script src="euclid.js"></script>
</body>
Независимо от того, что алгоритм, похоже, не изменяет список r = [a, b]. Поэтому при вызове r[r.length - 2]
(должен быть gcd) программа возвращает a.
Я попробовал все, но не могу понять, что не так.
Что еще странно, так это то, что алгоритм работает на онлайн-площадке js и правильно вычисляет gcd.
Правильно ли я использую .innerHTML или есть ошибки Javascript?
Есть ли способ отладки js-кода с помощью операторов print (например, python)?
Новичок в HTML и JS и благодарен за любую помощь.