javascript - 添加数组元素Javascript

标签 javascript function loops for-loop sum

为什么这段代码返回 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/

相关文章:

javascript - 如何知道 "who"执行了这个函数

python - 区分参数值 `None` 和默认参数值 `None`

python - 是否可以在代码检查完每个选项后让我的 else 语句出现?

loops - 如何继续为 rust 中的每个循环迭代下一个字符

python - 计算数据框中列中的每个值

javascript - 如何触发 JQuery 对话框以从 MVC 分部 View 的 Controller 关闭?

javascript - 如何在 jQuery 中为 "active"滚动菜单的链接创建异常(exception)?

javascript - 将数组从 JS 传递到 PHP 并创建 SESSION 变量

c - 使用函数的帕斯卡三角形

jquery - 如何向此 jQuery 函数添加 'click' 函数?