I have the following code, trying to return the range between two numbers, and the inner function is not returning a value. It simply returns [Function]. Can anyone 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: This is my code that ended up 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);
};
return function ...returns the function, it doesn't call it.return function range2(){}();return (function range2(){...})();.