如何创建一个合适的求和函数?

时间:2016-03-02 07:25:44

标签: javascript arrays

我试图创建一个求和函数。当我通过两个不同的数组(具有相同的值)运行它时,它会给我不同的结果。我无法确切地告诉我哪里做错了。当我使用'范围'生成数组时,似乎功能,它循环两次。



--name




任何帮助将不胜感激。谢谢!

2 个答案:

答案 0 :(得分:4)

原因是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

答案 1 :(得分:0)

使用lodash

您可以使用._sum功能。

var tempArr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
sum  = _.sum(tempArr)

如果您想使用它,请不要忘记添加库。

<script src="https://cdn.jsdelivr.net/lodash/4.5.1/lodash.min.js"></script>

Demo