【问题标题】:JS having variable update in for-loopJS在for循环中有变量更新
【发布时间】:2021-03-29 12:55:24
【问题描述】:

我是 JavaScript 和一般编码的新手,我遇到了 for 循环的问题。我告诉循环重复 5 次,并且循环应该将给定的数字(200)减半 5 次,得到 6.25。目前它将 200 减半 5 倍,但我无法弄清楚如何在每次循环后正确保存变量中的数字,所以它只是重复 200/2 = 100, 200/2 = 100, 200/2 = 100, 200 /2 = 100, 200/2 = 100。

如何将每个循环的结果保存到变量中,并在下一次循环运行中使用更新的变量?

function toisto(t,a,o) {
//t = 5
//a = 200
//o is a function for halving
    for (var i = 0; i < t; i++) {
        var puolitustulo = o(a);
    }
    console.log(puolitustulo);
}

【问题讨论】:

  • “我是 JavaScript 新手” - 然后远离 var 并使用 letconst(这也将“解决”您的问题,因为它会正确抛出错误)

标签: javascript for-loop


【解决方案1】:

要解决这个问题,您需要在循环内“更新”变量a

function toisto(t, a, o) {
//t = 5
//a = 200
//o is a function for halving
    for (let i = 0; i < t; i++) {
        //assign new value to the variable in each iteration
        a = o(a);
    }
    // variable a is available in this scope
    console.log(a);
}

另一个重要的问题是范围,请查看 MDN var keyword 上的这篇文章。如前所述,使用letconst 而不是var 是可行的方法。

【讨论】:

    【解决方案2】:
    function o(a){
        return a/2;    
    }
    
    function toisto(t,a,o) {
    //You define and initialize variable before loop
    let puolitustulo =0;
        for (let i = 0; i < t; i++) {
            puolitustulo= o(a);
            //You need to update your a to new value
            a=puolitustulo;
        }
        console.log(puolitustulo);
    }
    
    
    toisto(5,200,o);
    

    【讨论】:

      【解决方案3】:

      根据您所拥有的,这将是我的解决方案。您可以简单地传递 same variable (i.e. a) 并获得一半,而不是在循环中声明新变量。 为了在每次迭代中简单地获得一半的值,请将控制台输出放在 for 循环中。

      
      function o(value)
      {
          return value/2;
      }
      
      
      function toisto(t,a) {
      
          for (var i = 0; i < t; i++) {
              a = o(a);
            console.log(a);
          }
          
      }
      
      toisto(5,200);
      

      【讨论】:

        猜你喜欢
        • 2021-12-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-03-26
        • 2021-02-20
        • 1970-01-01
        • 2016-09-28
        相关资源
        最近更新 更多