Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JS新手:如何在HTML文档中正确调用递归函数?_Javascript_Recursion - Fatal编程技术网

Javascript JS新手:如何在HTML文档中正确调用递归函数?

Javascript JS新手:如何在HTML文档中正确调用递归函数?,javascript,recursion,Javascript,Recursion,我对在这个HTML文档中正确调用函数有点困惑。我做错了什么?函数应返回1和输入字段中输入的任何数字之间的所有数字的总和,但返回的是NaN。 如何将函数返回的值分配和显示到禁用的输入字段 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Recursion</title> <script> le

我对在这个HTML文档中正确调用函数有点困惑。我做错了什么?函数应返回1和输入字段中输入的任何数字之间的所有数字的总和,但返回的是NaN。 如何将函数返回的值分配和显示到禁用的输入字段

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Recursion</title>
    <script>
    let recursiveSum = (num) => {
        if (num === 1) {
            return 1;
        } else {
            return num + recursiveSum(num-1);
        }
    }
    </script>
</head>
<body>
   <h1>Find the sum of 1 to some number!</h1>
<form id="myForm" name="myForm">
  <input type="number" id="numInput" name="numInput" placeholder="Enter a positive number here" autofocus>
  <input type="text" id="sum" name="sum" disabled>
  <button type="button" onclick="recursiveSum(this.form.numInput.value);">Calculate! </button>
</form>
</body>
</html>

递归
让recursiveSum=(num)=>{
如果(num==1){
返回1;
}否则{
返回num+recursiveSum(num-1);
}
}
求1到某个数的和!
算算!

当前您的函数没有显式返回任何值,因此
未定义的
是从函数隐式返回的

在每个递归调用中设置
,也没有任何意义。您应该在所有递归的结果之后设置值

const elm=document.getElementById(“sum”)
函数btnClick(num){
让recursiveSum=(num)=>{
如果(num==1)返回1;
return num+recursiveSum(num-1)
}
elm.value=recursiveSum(+num)
}
找到1到某个数字的和!
算算!

当前您的函数没有显式返回任何值,因此
未定义的
是从函数隐式返回的

在每个递归调用中设置
,也没有任何意义。您应该在所有递归的结果之后设置值

const elm=document.getElementById(“sum”)
函数btnClick(num){
让recursiveSum=(num)=>{
如果(num==1)返回1;
return num+recursiveSum(num-1)
}
elm.value=recursiveSum(+num)
}
找到1到某个数字的和!
算算!

您需要将计算与显示值分开,以便正确计算总和。一旦你得到了总数,显示它就很容易了

let recursiveSum=(num)=>{
如果(num==1){
返回1;
}否则{
返回num+recursiveSum(num-1);
}
}
让showSum=(num)=>{
document.getElementById(“sum”).value=recursiveSum(num);
}
找到1到某个数字的和!
算算!

您需要将计算与显示值分开,以便正确计算总和。一旦你得到了总数,显示它就很容易了

let recursiveSum=(num)=>{
如果(num==1){
返回1;
}否则{
返回num+recursiveSum(num-1);
}
}
让showSum=(num)=>{
document.getElementById(“sum”).value=recursiveSum(num);
}
找到1到某个数字的和!
算算!

您的函数不会返回任何内容。因此,
+recursiveSum(…)
没有任何意义。您的函数不会
返回任何内容。所以,
+recursiveSum(…)
没有任何意义。这就是我感到困惑的部分。我知道如何返回所需的值,但我不明白的是如何将此函数合并到这个html文档中?我是否正确使用了document.getElementById()?您的解决方案给出了错误的总和,例如,对于3,它返回了5,而实际上应该是6。@binibiningtinamoran您使用的是
document.getElementById()
不正确,因为在每次递归调用中调用它没有任何意义。@MaheerAli将此脚本放在HTML文档的底部是否重要?好吧,这就是我感到困惑的部分。我知道如何返回所需的值,但我不明白的是如何将此函数合并到这个html文档中?我是否正确使用了document.getElementById()?您的解决方案给出了错误的总和,例如,对于3,它返回了5,而实际上应该是6。@binibiningtinamoran您使用的是
document.getElementById()
不正确,因为在每次递归调用中调用它没有任何意义。@MaheerAli将此脚本放在HTML文档的底部是否重要?谢谢!但是我在哪里解析它呢?我认为函数应该进行串联而不是加法。@binibiningtinamoran我已经在onclick调用中移出了parseInt,所以我不会在函数中多次使用parseInt。谢谢!但是我在哪里解析它呢?我认为函数应该进行串联而不是加法。@binibiningtinamoran我已经在onclick调用中移出了parseInt,所以我不会在函数中多次使用parseInt。