我有一个带有 if 语句的函数,无论是否为真,该函数都应该调用外部函数。我得到的结果是“未定义”。你能给我指出正确的方向吗?
函数一:
function printRange(rangeStart, rangeStop) {
let summa = [];
for (i = rangeStart; i <= rangeStop; i++) {
summa.push(i);
}
let result2 = summa.join();
return result2;
}
功能二:
function printRangeReversed(rangeStart, rangeStop) {
let summa = [];
for (i = rangeStart; i >= rangeStop; i--) {
summa.push(i);
}
let result3 = summa.join();
return result3;
}
功能三:
function printAnyRange(rangeStart, rangeStop) {
if (rangeStart < rangeStop) {
printRange(rangeStart, rangeStop);
} else {
printRangeReversed(rangeStart, rangeStop);
}
return;
}
调用函数:printAnyRange(21, 45);
正如我所说,这一切对我来说都是合乎逻辑的,但我想这不是因为我得到了“未定义”。
预期结果应为:"21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39, 40,41,42,43,44,45"
问候。
最佳答案
您没有返回任何东西。捕获函数的结果并返回该变量。
function printRange(rangeStart, rangeStop) {
let summa = [];
for (i = rangeStart; i <= rangeStop; i++) {
summa.push(i);
}
let result2 = summa.join();
return result2;
}
function printRangeReversed(rangeStart, rangeStop) {
let summa = [];
for (i = rangeStart; i >= rangeStop; i--) {
summa.push(i);
}
let result3 = summa.join();
return result3;
}
function printAnyRange(rangeStart, rangeStop) {
let result = null;
if (rangeStart < rangeStop) result = printRange(rangeStart, rangeStop);
else result = printRangeReversed(rangeStart, rangeStop);
return result;
}
console.log(printAnyRange(1,5));
console.log(printAnyRange(5,1));
关于javascript - 从函数内的 if 语句调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53329879/