2 回答
TA贡献1825条经验 获得超4个赞
目前,您的函数没有显式返回任何值,因此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>
TA贡献2003条经验 获得超2个赞
您需要将计算与显示值分开,以便正确计算总和。一旦得到总和,显示它很容易。
let recursiveSum = (num) => {
if (num === 1) {
return 1;
} else {
return num + recursiveSum(num - 1);
}
}
let showSum = (num) => {
document.getElementById("sum").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="showSum(parseInt(this.form.numInput.value));">Calculate! </button>
</form>
添加回答
举报