我做了一个循环来收集数组中的数字 我把一个等于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
答案 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=21
和total=20