【发布时间】:2016-12-28 20:46:24
【问题描述】:
为什么这段代码返回 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 并且循环应该结束。请解释那里发生了什么。
【问题讨论】:
-
因为
i从2运行到2,实际上只将arr[2](10) 添加到0。我不清楚您对var i = array[0];的意图是什么。扩展一点:“因为下一个i等于3” 是的,您只添加一个值,循环在一次迭代后停止,但由于i开始于2您添加的是arr[2],而不是arr[0]。顺便说一句,如果您想了解您的代码到底在做什么,请设置一个断点,逐步执行您的代码并检查变量。 -
因为
array[2]是10
标签: javascript function loops for-loop sum