簡體   English   中英

從函數內部的if語句調用函數

[英]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 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;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM