[英]Call a function from an if-statement inside a function
我有一個帶有if語句的函數,該函數反過來應該調用外部函數,無論是否為真。 我得到的結果是“未定義”。 您能指出我正確的方向嗎?
功能一:
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 1
和function 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;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.