【问题标题】:JavaScript: Somehow my var n from input gets multiplied by 10 I have no idea where it happensJavaScript:不知何故,我输入的 var n 乘以 10 我不知道它发生在哪里
【发布时间】:2019-09-29 01:59:01
【问题描述】:

我一直在做一个 fibo 函数来练习,突然我从输入字段中获得的 n 数总是乘以 10。所以如果我输入 1 将从 fibo 序列中计算 11 个数字,如果我输入 2 将做 21 个数字并且等等..有人发现错误在哪里吗?

function fibo(){
	var n = document.getElementById("numb").value;
	console.log(n);
	var r=[];
	var i;
	if (isNaN(n) || n < 1 || n > 10) {
    document.getElementById("ex1").innerHTML = "Input not valid";
    } else {
    	for (i = 0; i < n + 1; i++) {
    		console.log(i);
    		console.log(r);
			if (i == 0){

				r[i] = i;

			}
			else if (i == 1){

				r[i] = i;

			}
			else{

				r[i] = r[i - 1] + r[i - 2];
				
			}
	  	}
	  	document.getElementById("ex1").innerHTML = r.toString();
	}
}
<!DOCTYPE html>
<html>
<body>

<h2>Fibonacci</h2>

<p>Please input a number between 1 and 10:</p>

<input id="numb">
<button type="button" onclick="fibo()">Calculate Fibo</button>
<p id="ex1"></p>

</body>
</html> 

【问题讨论】:

  • 代码在哪里?您很可能需要添加 n + Number(input.value) 而不是 n + input.value
  • 如果您没有发布代码,我们怎么可能发现您的代码中的错误?
  • 请使用 Stack Overflow 的 tour 并阅读如何添加 required code
  • 为什么你认为2*10是21?看起来你正在将数字作为字符串添加到 1。所以我猜如果你输入 5,你最终会得到 51?!
  • 有代码我忘了贴你们快!

标签: javascript arrays button input


【解决方案1】:

我只需要删除 for 循环中的“+1”。还是谢谢。

function fibo(){
	var n = document.getElementById("numb").value;

	var r=[];
	var i;
	if (isNaN(n) || n < 1 || n > 10) {
    document.getElementById("ex1").innerHTML = "Input not valid";
    } else {
    	for (i = 0; i < n ; i++) {
    	
			if (i == 0){

				r[i] = i;

			}
			else if (i == 1){

				r[i] = i;

			}
			else{

				r[i] = r[i - 1] + r[i - 2];
				
			}
	  	}
	  	document.getElementById("ex1").innerHTML = r.toString();
	}
	
}
<!DOCTYPE html>
<html>
<body>

<h2>Fibonacci</h2>

<p>Please input a number between 1 and 10:</p>

<input id="numb">
<button type="button" onclick="fibo()">Calculate Fibo</button>
<p id="ex1"></p>

<script src="fibo.js"></script>

</body>
</html> 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-31
    • 1970-01-01
    • 2018-11-17
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多