从函数内部的if语句调用函数



我有一个带有if语句的函数,无论某个语句是否为true,它都应该调用外部函数。我得到的结果是"未定义"。你能告诉我正确的方向吗?

功能1:

function printRange(rangeStart, rangeStop) {
let summa = [];
for (i = rangeStart; i <= rangeStop; i++) {
summa.push(i);
}
let result2 = summa.join();
return result2;
}

功能2:

function printRangeReversed(rangeStart, rangeStop) {
let summa = [];
for (i = rangeStart; i >= rangeStop; i--) {
summa.push(i);
}
let result3 = summa.join();
return result3;
}

功能3:

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));

function 1function 2返回的值未被function 3使用或存储。尝试以下代码:

function printAnyRange(rangeStart, rangeStop) {
if (rangeStart < rangeStop) {
return printRange(rangeStart, rangeStop);
} else {
return printRangeReversed(rangeStart, rangeStop);
}
}
console.log(printAnyRange(10, 15));

这应该可以解决问题。

您需要对返回的值执行一些操作,比如记录它们:

function printAnyRange(rangeStart, rangeStop) {
if (rangeStart < rangeStop) {
console.log(printRange(rangeStart, rangeStop));
} else {
console.log(printRangeReversed(rangeStart, rangeStop));
}
return;
}

或者从主功能返回:

function printAnyRange(rangeStart, rangeStop) {
if (rangeStart < rangeStop) {
result = printRange(rangeStart, rangeStop);
} else {
result = printRangeReversed(rangeStart, rangeStop);
}
return result;
}

最新更新