javascript - 如何创建适当的求和函数?

标签 javascript arrays

我正在尝试创建一个求和函数。当我通过两个不同的数组(具有相同的值)运行它时,它给出了不同的结果。我实在说不出来我哪里做错了。看来当我使用“range”函数生成数组时,它循环了两次。

var myArr = [];
var tempArr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];


function range(start, end) {
  for (i = start; i <= end; i++) {
    myArr.push(start);
    start = start + 1;
  }
  return myArr;

}

function sum(arr) {
  var sumArr = 0;
  for (i = 0; i < arr.length; i++) {
    sumArr = sumArr + arr[i];
    //console.log(sumArr);
  }
  return sumArr;
}


console.log(range(1, 10)); //[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]
console.log(tempArr); //[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]	


console.log(sum(range(1, 10))); //110
console.log(sum(tempArr)); //55

如有任何帮助,我们将不胜感激。谢谢!

最佳答案

原因是 var myArr = []; 是一个全局变量。因此,第一次控制台尝试中推送的元素将一直存在,直到它们被清除。您可以在函数中使用局部变量。

var tempArr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];


function range(start, end) {
  var myArr = [];
  for (i = start; i <= end; i++) {
    myArr.push(start);
    start = start + 1;
  }
  return myArr;
}

function sum(arr) {
  var sumArr = 0;
  for (i = 0; i < arr.length; i++) {
    sumArr = sumArr + arr[i];
    //console.log(sumArr);
  }
  return sumArr;
}


console.log(range(1, 10)); //[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]
console.log(tempArr); //[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]	


console.log(sum(range(1, 10))); //55
console.log(sum(tempArr)); //55

关于javascript - 如何创建适当的求和函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35740906/

相关文章:

javascript - 如何按名称和列关联对象

javascript - 键值配对数组元素在给定索引 JavaScript 中分配值时返回 "undefined"错误

php - 将php中的多维数组打印到html表中

JavaScript:Object.method 与 Object.prototype.myMethod?

javascript 每刻钟在 00、15、30、45 运行一个函数

javascript - React HOC 类不返回任何内容

arrays - Delphi-在数组中搜索对象

javascript - 最有效的javascript方法声明

javascript - javascript图像翻转问题

c - 尝试对 c 中的结构数组使用 realloc 导致无效指针