为什么不给变量赋值呢?

问题描述 投票:0回答:1

我正在尝试编写代码来计算斐波那契序列,但由于某种原因,它不会从 for 语句外部分配变量。这是我的代码:

let out = [];
let number1 = 1;
let number2 = 0;

function fibonacci(num1, num2) {
  for (let i = 1; i < (5) + 1; i++) {
    let num3 = 0;
    num3 = num1 + num2;

    out.push(num3);

    //this is testing outputs
    console.log(`${i} num1 ${num1}`);
    console.log(`${i} num2 ${num2}`);
    console.log(`${i} num3 ${num3}`);
    console.log(`${i} out ${out}`);
    //end testing outputs
    number2 = number1;
    num3 = number1
  }
};
document.getElementById("but").onclick = function run() {
  fibonacci(number1, number2);
  document.getElementById("output").textContent = out;
}
<!DOCTYPE html>
<html>

<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>replit</title>
  <link href="style.css" rel="stylesheet" type="text/css" />
</head>

<body>
  <label>Fibonacci sequence</label><br>
  <button id='but'>Start</button>
  <div id='output'></div>

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

</html>

我尝试更改变量并删除名为变量的函数。一开始它会给我输出未定义的和 0,但现在它给我的都是 1。谁能帮助我。

javascript fibonacci
1个回答
0
投票

这里是更新的JS

  • 在循环内更新变量:变量 number1 和 number2 应在循环内正确更新,以生成斐波那契数列中的下一个数字。
  • number1number2 赋值:确保正确分配新值,以便序列可以正确进行。

let out = [];
let number1 = 1;
let number2 = 0;

function fibonacci(num1, num2) {
      out = []; // Reset the output array
      for (let i = 1; i <= 5; i++) {
        let num3 = num1 + num2;
        out.push(num3);

        // Update num1 and num2 for the next iteration
        num2 = num1;
        num1 = num3;
      }
    }

    document.getElementById("but").onclick = function run() {
      fibonacci(number1, number2);
      document.getElementById("output").textContent = out.join(', ');
    }
<!DOCTYPE html>
<html>

<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>replit</title>
  <link href="style.css" rel="stylesheet" type="text/css" />
</head>

<body>
  <label>Fibonacci sequence</label><br>
  <button id='but'>Start</button>
  <div id='output'></div>
  
  <script src="script.js"></script>
</body>

</html>

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.