2017-07-19 97 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