2017-07-19 100 views
0
const sequenceSum = (begin, end) => { 
    // BEGIN (write your solution here) 
    if (begin === end) { 
    return end; 
    } else if (begin > end) { 
    return NaN; 
    } 

    return end + sequenceSum(end-1); 
    // END 
}; 

export default sequenceSum; 

你好。我不明白上述代碼的問題。我有以下錯誤:遞歸JavaScript問題

RangeError: Maximum call stack size exceeded

+1

看起來像遞歸永不止步。你究竟如何稱呼這個函數? – str

+0

http://xyproblem.info/ –

回答

3

return end + sequenceSum(end-1)導致沒有被達到if也不if..else聲明你不提供函數調用第二個參數,如end沒有定義;而不是return end + sequenceSum(end-1)被重複調用。

+0

是的,謝謝! return end + sequenceSum(begin,end-1); :) – Vladimir