【问题标题】:Noob JavaScript regarding understaning for loop + arrayNoob JavaScript 关于对循环 + 数组的理解
【发布时间】:2016-08-18 17:22:26
【问题描述】:

我是编程新手,这是一个菜鸟问题,但我找不到任何可以真正解释每个部分的线索。我知道如何创建 for 循环,但我不清楚一些基本部分。例如,是什么让total += v[i];做下一个动作 10+20+30+40+50 =150 我的意思是,如果我声明 total = 0; 为什么每个值都不会删除前一个值?例如:循环运行,第一个值为 10,然后 20 运行超过 10,然后 30 运行超过 20...而不是保留数字并将它们相加 10+20...并计算。

为什么我不需要写 var total = 0

var v = [10,20,30,40,50];

var items = v.length;
total = 0;
for (var i = 0; i <items; i++){
    total += v[i];
}
var mean = total / items;
alert(mean);

【问题讨论】:

  • 总计 += v[i];是 total = total + v[i]; 的简写
  • 我很乐意为您提供帮助,但这是一个相当繁重的问题,答案范围非常广泛,不幸的是,这不在 Stack Overflow 问题的指导方针之内。请参阅 javascript 指南/教程/课程的介绍,他们应该了解所有这些以及许多其他内容
  • var 关键字用于确定定义变量的范围。这不是必需的,但在您的示例中 total 是一个全局字段。你可以阅读它here

标签: javascript arrays loops for-loop


【解决方案1】:

您在开始时写“var total = 0”来初始化变量“total”。这很重要,因为您想在 for 循环之外使用它。如果你把它放在你的 for 循环中,每次循环重新启动它都会回到 0。

由于该值存在于循环范围之外,因此不会在每次循环重新启动时重置。这就是为什么每次你调用“total += v[i];”时你的总数都会增加。

【讨论】:

    【解决方案2】:

    在许多其他语言中,Javascript 定义了 += 运算符以及 -=*=\= 等其他运算符。所有这些运算符都对变量的当前值执行操作。

    所以:total += v[i];total = total + v[i]; 含义相同

    类似total /= items;total = total / items; 相同

    【讨论】:

      【解决方案3】:

      循环很方便,如果您想一遍又一遍地运行相同的代码,每次都使用不同的值。

      for (statement 1; statement 2; statement 3) {
          code block to be executed
      }
      

      语句 1 在循环(代码块)开始之前执行。

      语句 2 定义了运行循环(代码块)的条件。

      每次执行循环(代码块)后,都会执行语句 3。 我们需要 for 循环,因为您不想自己做 100 次或 1000 次相同的事情。你说我们需要循环来添加数字,当我们可以添加 10+20 时……你可以添加 10+20+30+40……但是你不能添加 100 万个数字。 另一种想法是我们使用循环是因为我们通常不知道数组的值。

      total += v[i]; 等于 total = total + v[i];

      你写var total = 0是因为总和的起始值是0。你也想在for循环之外声明var total = 0,因为如果你每次插入到那个循环里面,那个循环就会重复total的值将是 0。

      【讨论】:

        【解决方案4】:

        total += v[i]total = total + v[i] 相同,所以这是一种简单的做法:

        var helper = total + v[i]
        total = helper
        

        看看这个resource,很有用。

        【讨论】:

          猜你喜欢
          • 2022-06-15
          • 2018-02-04
          • 2021-08-04
          • 1970-01-01
          • 1970-01-01
          • 2012-01-05
          • 2013-07-19
          • 2013-05-28
          • 1970-01-01
          相关资源
          最近更新 更多