JavaScript 斐波那契函数到 HTML 元素?
JavaScript Fibonacci function to HTML element?
所以我想开始制作一个基于课程的脚本,但我无法弄清楚为什么我的斐波那契数列函数的输出只有 (0,1)。
function fibonacciGenerator(n){
var output = [];
if(n === 1) {
output = [0];
}
else if (n === 2) {
output = [0, 1];
document.getElementsById("nr").innerHTML = output;
}
else {
output = [0, 1];
for (var i = 2; i < n; i++) {
output.push(output[output.length - 2] + output[output.length - 1]);
document.getElementById("result").innerHTML = output;
}
}
return output;
}
function calcButton() {
document.getElementById('result').innerHTML = fibonacciGenerator();
}
<input id="nr" name="nr" type="number" style="margin: auto; display: flex;">
<button style="margin: auto; display: flex;" onclick="calcButton()">Calc</button>
<div style="margin: auto; display: flex;" id="result"></div>
尝试了不同的方法,但我想不通。
@GetSet 的意思是调用你的函数时没有 n
只需将输入值提供给它即可;
function fibonacciGenerator(n){
var output = [];
if(n === 1) {
output = [0];
}
else if (n === 2) {
output = [0, 1];
document.getElementsById("nr").innerHTML = output;
}
else {
output = [0, 1];
for (var i = 2; i < n; i++) {
output.push(output[output.length - 2] + output[output.length - 1]);
document.getElementById("result").innerHTML = output;
}
}
return output;
}
function calcButton() {
let number = document.querySelector('input').value // Get the input's value
document.getElementById('result').innerHTML = fibonacciGenerator(number); // and feed it to your function
}
<input id="nr" name="nr" type="number" style="margin: auto; display: flex;">
<button style="margin: auto; display: flex;" onclick="calcButton()">Calc</button>
<div style="margin: auto; display: flex;" id="result"></div>
问题的根本原因是没有从文本字段中读取输入。可以通过使用“var n = document.getElementById("nr").value
”读取输入
来解决问题
这是工作代码,其功能已更新为从文本字段读取输入:
<!DOCTYPE html>
<html>
<body>
<h2>Fibonacci series</h2>
<input id="nr" name="nr" type="number">
<button onclick="fibonacciGenerator()">Calc</button>
<div id="result"></div>
<script>
function fibonacciGenerator(){
var n = document.getElementById("nr").value
var output = [];
if(n === 1) {
output = [0];
} else if (n === 2) {
output = [0, 1];
document.getElementsById("nr").innerHTML = output;
} else {
output = [0, 1];
for (var i = 2; i < n; i++) {
output.push(output[output.length - 2] + output[output.length - 1]);
document.getElementById("result").innerHTML = output;
}
}
document.getElementById('result').innerHTML = output
}
</script>
</body>
</html>
输出:
所以我想开始制作一个基于课程的脚本,但我无法弄清楚为什么我的斐波那契数列函数的输出只有 (0,1)。
function fibonacciGenerator(n){
var output = [];
if(n === 1) {
output = [0];
}
else if (n === 2) {
output = [0, 1];
document.getElementsById("nr").innerHTML = output;
}
else {
output = [0, 1];
for (var i = 2; i < n; i++) {
output.push(output[output.length - 2] + output[output.length - 1]);
document.getElementById("result").innerHTML = output;
}
}
return output;
}
function calcButton() {
document.getElementById('result').innerHTML = fibonacciGenerator();
}
<input id="nr" name="nr" type="number" style="margin: auto; display: flex;">
<button style="margin: auto; display: flex;" onclick="calcButton()">Calc</button>
<div style="margin: auto; display: flex;" id="result"></div>
尝试了不同的方法,但我想不通。
@GetSet 的意思是调用你的函数时没有 n
只需将输入值提供给它即可;
function fibonacciGenerator(n){
var output = [];
if(n === 1) {
output = [0];
}
else if (n === 2) {
output = [0, 1];
document.getElementsById("nr").innerHTML = output;
}
else {
output = [0, 1];
for (var i = 2; i < n; i++) {
output.push(output[output.length - 2] + output[output.length - 1]);
document.getElementById("result").innerHTML = output;
}
}
return output;
}
function calcButton() {
let number = document.querySelector('input').value // Get the input's value
document.getElementById('result').innerHTML = fibonacciGenerator(number); // and feed it to your function
}
<input id="nr" name="nr" type="number" style="margin: auto; display: flex;">
<button style="margin: auto; display: flex;" onclick="calcButton()">Calc</button>
<div style="margin: auto; display: flex;" id="result"></div>
问题的根本原因是没有从文本字段中读取输入。可以通过使用“var n = document.getElementById("nr").value
”读取输入
这是工作代码,其功能已更新为从文本字段读取输入:
<!DOCTYPE html>
<html>
<body>
<h2>Fibonacci series</h2>
<input id="nr" name="nr" type="number">
<button onclick="fibonacciGenerator()">Calc</button>
<div id="result"></div>
<script>
function fibonacciGenerator(){
var n = document.getElementById("nr").value
var output = [];
if(n === 1) {
output = [0];
} else if (n === 2) {
output = [0, 1];
document.getElementsById("nr").innerHTML = output;
} else {
output = [0, 1];
for (var i = 2; i < n; i++) {
output.push(output[output.length - 2] + output[output.length - 1]);
document.getElementById("result").innerHTML = output;
}
}
document.getElementById('result').innerHTML = output
}
</script>
</body>
</html>
输出: