在javascript递归函数中运行一次
如何在Javascript递归中只运行一次 让我用在javascript递归函数中运行一次,javascript,recursion,Javascript,Recursion,如何在Javascript递归中只运行一次 让我用factorial函数来解释我的问题 我只想跑一次第一线 我有不同的用例,不是这个。我很清楚我可以做factorial(n=1) 将用于在外部函数中递归求值的函数包装到外部函数中通常会很有帮助,以使API更干净: function factorial(n) { function compute(n) { if (n === 0 || n === 1) return 1; return n * compute(n -
factorial
函数来解释我的问题
我只想跑一次第一线
我有不同的用例,不是这个。我很清楚我可以做factorial(n=1)
将用于在外部函数中递归求值的函数包装到外部函数中通常会很有帮助,以使API更干净:
function factorial(n) {
function compute(n) {
if (n === 0 || n === 1)
return 1;
return n * compute(n - 1);
}
return compute(n || 1);
}
现在,当调用内部compute()
函数时,n | | 1
初始化只发生一次
创建这样的包装器对于一些组合算法更有用(“查找所有组合…”等等)
function factorial(n) {
function compute(n) {
if (n === 0 || n === 1)
return 1;
return n * compute(n - 1);
}
return compute(n || 1);
}