为什么varible allto给21?

时间:2018-03-12 21:26:04

标签: javascript arrays loops iteration

我做了一个循环来收集数组中的数字 我把一个等于0的值 并且给了我21因为每次0将被添加到数组中的每个元素并收集它们并给我们20 但是如果我将值设为1 它给了我21,但它应该给我24 因为我为数组中的每个元素添加了1?或者我错了 为什么它给了我21?

var num = [5,5,5,5];
var allto = 1;
var total = 0;

for(var i= 0; i<num.length; i++) {
  allto = allto +  num[i];
  total = total + num[i];
}
alert(allto); // == 21
alert(total); // == 20

1 个答案:

答案 0 :(得分:1)

当您运行上面的代码

时会发生这种情况
allto     |  i    |  total
___________________________
1         | -     | 0       //before loop start
6         | 0     | 5       // allto=1+5=6  and total=0+5=5
11        | 1     | 10       // allto=6+5=11  and total=5+5=10
16        | 2     | 15       // allto=11+5=16  and total=10+5=15
21        | 3     | 20       // allto=16+5=21  and total=15+5=20

最后allto=21total=20