Javascript 来自jquery函数的日志递归
我试图用递归函数和jQuery计算一个序列,但我不知道如何记录函数进行的每个递归,以便获得序列成员 代码如下:Javascript 来自jquery函数的日志递归,javascript,jquery,recursion,Javascript,Jquery,Recursion,我试图用递归函数和jQuery计算一个序列,但我不知道如何记录函数进行的每个递归,以便获得序列成员 代码如下: $(document).ready(function () { $("#button").click(function () { var n = $("#number").val(); function series(n) { if (n == 1) { return 6;
$(document).ready(function () {
$("#button").click(function () {
var n = $("#number").val();
function series(n) {
if (n == 1) {
return 6;
} else {
return 0.5 * series(n - 1) + 4;
}
}
console.log(series(n));
});
});
问题是该函数只记录最后一个系列成员。例如,如果n=4
序列应该是6、7、7.5、7.75
该函数仅返回7.75
这是级数公式:series(n)=0.5*级数(n-1)+4
,如果n=1
,则series(n)=6
;
谢谢大家! 您使用的
console.log()
仅接受最外面的系列调用的输出。如果要记录每次迭代,您需要在series方法中记录,或者在series方法中跟踪迭代期间的每个结果,然后记录用于跟踪的内容
这看起来像是家庭作业,所以我不会透露太多,但它可能有助于浏览器中的检查器了解执行情况,并了解代码是如何流动的。试试这个
$(document).ready(function () {
$("#button").click(function () {
var n = $("#number").val();
function series(n) {
var val=6;
if (n != 1) {
val= 0.5 * series(n - 1) + 4;
}
console.log(val);
return val;
}
});
});
这并不是最漂亮的示例,但是如果您将代码封装到另一个带有结果数组的函数中。然后调用内部递归函数并将它们存储到该数组中,这样就可以将结果作为数组返回。然后,您可以使用连接将其转换为字符串,以便使用jQuery或控制台记录它来显示 小提琴:
这不是家庭作业。我想学习递归函数。我曾尝试将
console.log(series(n))
放在函数中,但它返回“超过最大调用堆栈大小”。如何跟踪每次迭代?我尝试过使用“counter”变量,但不起作用。将它们存储在数组中如何?对于创建递归函数的方式,“超出了最大调用堆栈大小”是一个基本问题。快速提问:如果n
从不为1,会发生什么情况?n每次都必须为1,因为序列必须返回n的每个值,直到它达到给定给序列(n)的值为止。例如,如果我想要系列(7),函数必须返回:系列(7)、系列(6)、系列(5)、系列(4)、系列(3)、系列(2)、系列(1)。还有,Josh,我不在乎将值存储在数组中,我只是不知道如何打印每个迭代的异常值。它不会返回任何内容:(在打印输出后返回到VALL,在完成后完成任务,但是它是如此复杂。在Visual Basic或C++中,更容易。没有数组涉及,只是PUEL递归和迭代打印。我会继续调查,必须有一个更简单的方法来做它!
function getSeriesArray(n) {
var results = [];
function series(n) {
if (n === 1) {
results.push(6);
return 6;
} else {
var result = 0.5 * series(n - 1) + 4;
results.push(result);
return result;
}
}
series(n);
return results;
}