javascript - Why is my recursive function call not returning a value? -
i have following code, trying return range between 2 numbers, , inner function not returning value. returns [function]. can tell me why?
var range = function(num1, num2) { var output = []; return function range2 () { if (num2 - num1 === 2) { return [num1+1]; } else if (output.length + 1 === num2 - num1) { return output; } else if (output.length + 1 !== num2 - num1) { output.push(num1 + 1); } return range2(num1 + 1, num2); }; }; //update: code ended working, fwiw:
var range = function(num1, num2) { var list = []; var range2 = function(num1, num2) { list.push(num1 + 1); if (num2 - num1 === 2) { return list; } else { return range2(num1 + 1, num2); } }; return range2(num1, num2); };
the range() function never calls range2(). returns function expression.
also, range2() needs take arguments.
var range = function(num1, num2) { var output = []; function range2(num1, num2) { if (num2 - num1 === 2) { return [num1 + 1]; } else if (output.length + 1 === num2 - num1) { return output; } else if (output.length + 1 !== num2 - num1) { output.push(num1 + 1); } return range2(num1 + 1, num2); }; return range2(num1, num2); }; alert(range(1, 10));
Comments
Post a Comment