我怎么读这个" for-loop"来自freecodecamp的代码

时间:2017-12-19 03:40:50

标签: javascript for-loop string-length variable-length

这基本上就是代码,我已经得到了正确的答案,但我只想弄清楚这个过程是如何运作的

  

总计= 20

   var myArr = [ 2,3,4,5,6];
    var total = 0;

    for (var d = 0; d < myArr.length; d++){
       total += myArr[d];

    }

我做了这个

   var myArr = [ 2,3,4,5,6];
var total = "";

for (var d = 0; d < myArr.length; d++){
   total += myArr;

}

输出是......(总数=&#34;&#34 ;;所以我可以看到里面发生的事情但是......

  

总计= 2,3,4,5,62,3,4,5,62,3,4,5,6

然后混淆然后我将myArr更改为d

var myArr = [ 2,3,4,5,6];
var total = 0;

for (var d = 0; d < myArr.length; d++){
   total += d;

}

为什么是

  总共= 10?

2 个答案:

答案 0 :(得分:0)

我已经为您的工作解决方案添加了评论,如下所示。

//Create new array to store our range
var myArr = [ 2,3,4,5,6];
//create new variable to store our total at the end
var total = 0;

//repeat code within when d < the length (or number of values) in our array, increment d each time it runs
for (var d = 0; d < myArr.length; d++){
   //take the current total and add the current value in our array to it each time
   // first time it will be 0 (total) + 2 (myArr[0]) second time it will be 2 (total) + 3 (myArr[1]) and so on.
   total += myArr[d];

}

正如另一位用户在您的第二次尝试中指出的那样,您已将total的数据类型从数字更改为字符串。

答案 1 :(得分:0)

首先:

var myArr = [ 2,3,4,5,6];
var total = 0;

for (var d = 0; d < myArr.length; d++){
    total += myArr[d];
}

您在循环范围之外创建一个新变量,该变量仅为0.当您遍历每次迭代时,您需要将数组的当前索引(myArr[d])添加到total变量。

在你的第二个中,你创建了一个空字符串的新变量。 JavaScript并不知道或不关心您是否尝试添加数字,因此它会将数字附加到空字符串中,从而将结果附加到其中。

var myArr = [ 2,3,4,5,6];
var total = "";

for (var d = 0; d < myArr.length; d++){
  total += myArr;
}

+=运算符适用于字符串和数字,并且根据值的不同而表现不同。

0 + '1' - 2 + '-3' // "-1-3"
0 + '1' - 2 // -1