这基本上就是代码,我已经得到了正确的答案,但我只想弄清楚这个过程是如何运作的
总计= 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?
答案 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