У меня есть следующие функции:Javascript рекурсии ошибка - функция внутри функции
function getRange() {
// generate a range of values from value up to climit
// excluding climit
var countup = function(value, climit) {
if (value < climit) {
console.log(value);
return countup(value + 1, climit);
}
};
// gather input from the form
var x = document.getElementById("range_form").range_x.value;
var y = document.getElementById("range_form").range_y.value;
// Validate the input
if (isNaN(x) || isNaN(y)) {
console.log("Both values have to be integers!!!");
} else {
// run the countup fonction
countup(x, y);
}
}
Теперь функционировать Countup (самостоятельно) работает, как ожидалось мной. Как только я включил функцию getRange, она перестала работать правильно. Когда я помещаю некоторые значения в форму (например, 2 и 9), вывод в консоли бесконечен 1111111111111111 , а затем ошибка: Uncaught RangeError: превышен максимальный размер стека вызовов.
Пожалуйста посоветуйте
, поскольку вы видят '1111111111111111', что вы работаете со строкой вместо целого. Попробуйте обернуть переменные var x, y в 'parseInt' (например,' parseInt (document.getElementById ("range_form"). Range_x.value, 10) ' –