gpt4 book ai didi

javascript - JS新手: How to properly call a recursive function in an HTML document?

转载 作者:行者123 更新时间:2023-11-28 17:04:42 24 4
gpt4 key购买 nike

我对在此 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>

最佳答案

目前您的函数没有显式返回任何值,因此从函数隐式返回 undefined

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

const elm = document.getElementById("sum")

function btnClick(num){
let recursiveSum = (num) => {
if(num === 1) return 1;
return num+recursiveSum(num-1)
}
elm.value = recursiveSum(+num)
}
<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="btnClick(this.form.numInput.value);">Calculate! </button>
</form>

关于javascript - JS新手: How to properly call a recursive function in an HTML document?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56163211/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com