I want a recursive function that returns the powers of a number and stores each of them in an array called *stack*.
换句话说,每次执行递归时,都会将新值添加到堆栈中。在javascript中创建数组的递归,来自codeacademy
例如,如果我们调用power(3, 3)
,我们的堆栈应该以元素[3, 9, 27]
结束。
但是,此代码的结果是27而不是数组。我的错误是什么?
// Create an empty array called "stack"
var stack = [];
// Here is our recursive function
function power(base, exponent) {
// Base case
if (exponent === 0) {
return 1;
}
// Recursive case
else {
stack[exponent - 1] = base * power(base, exponent - 1);
return stack[exponent - 1];
}
}
power(3,3);
请编辑您的代码中使用适当的indenta灰。阅读非常困难。 –
我很感谢大家的时间和解决方案,但我投了我能理解的东西。其他代码,因为我是初学者,所以需要时间研究。谢谢!此外,自从我学习递归之后,它必须是递归,但仍然无法理解如何以及何时使用它,尽管我多次阅读了雄辩的javascript。 –
我的意思是雄辩的JavaScript递归部分 –