为什么这段代码返回 10 而不是 2?
var arrToSum = [2, 4, 10];
function sumArray(array) {
var result = 0;
for (var i = array[0]; i < array.length; i++) {
result += array[i];
}
return result;
}
sumArray(arrToSum);
// function returns 10
如果遵循循环逻辑,我会在将 2 添加到 result 变量后结束,因为下一个 i 等于 3,循环应该结束。请解释那里发生了什么。
最佳答案
for 循环的工作原理:
for (var i = array[0]; i < array.length; i++) {
在循环中,这些是执行第一次迭代后的结果;
第一次迭代;我 = 2
var i = array[0]; // i = 2;
result += array[i]; // result = 10;
array[i]
是array[2]
这是 10。因此,result
是 10。
第二次迭代;我 = 3
array.length
是 3 因为它有 3 个元素。条件 i < array.length;
为假,代码跳出循环,返回结果为 10。
关于javascript - 添加数组元素Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41369475/