使用函数返回数组的总和?我卡住

时间:2017-04-20 00:13:43

标签: javascript arrays sum

我正在尝试控制记录从1到10的所有数字的总和(如我的console.log和我调用函数中所见),但我只是难倒。

在我的第一个函数中,我做了它,所以数组将填满并打印出我设置的开始和结束之间的所有内容。我不知道如何重写sum函数使console.log显示55(1到10之间所有数字的总和)

    a = [];

var range = function(start, end) {
  for (j=start;j<=end;j++) {
  a.push(j);

  }
  return a;
}

var sum = function(array) {
  var array = a;
}



console.log(sum(range(1, 10)));

就像我说的那样,这是总和功能给我带来麻烦。我很难理解如何在这个小程序中使用它。

4 个答案:

答案 0 :(得分:1)

  

就像我说的那样,这是总和功能给我带来麻烦。

您需要在array中添加所有数字,然后返回结果:

a = [];

var range = function(start, end) {
  for (j=start;j<=end;j++) {
  a.push(j);

  }
  return a;
}

var sum = function(array) {
    var result = 0;
    for(var i = 0; i < array.length; i++) result += array[i];
    return result;
}

console.log(sum(range(1, 10)));

答案 1 :(得分:0)

您应该能够使用减速器功能

&#13;
&#13;
var a = [];
    
var range = function(start, end) {
  for (j=start;j<=end;j++) {
  a.push(j);

  }
  return a;
}

var sum = function(array) {
  return array.reduce(function(a, b) {
    return a + b;
  })
}

alert(sum(range(1,10)))
&#13;
&#13;
&#13;

请参阅此处Array.reduce MDN

答案 2 :(得分:0)

使用array添加reduce()个项目。请尝试以下方法:

&#13;
&#13;
a = [];
var range = function(start, end) {
    for (j=start;j<=end;j++) {
    a.push(j);
  }
  return a;
}
var sum = function(array) {
  return array.reduce(function(sum, item){
    return sum + item;
  },0)
}

console.log(sum(range(1, 10)));
&#13;
.as-console-wrapper { max-height: 100% !important; top: 0; }
&#13;
&#13;
&#13;

答案 3 :(得分:-1)

您可以使用map在数组中的所有项目上运行函数,如:

&#13;
&#13;
var a = [];
    
var range = function(start, end) {
  for (j=start;j<=end;j++) {
  a.push(j);

  }
  return a;
}

var sum = function(a) {
  var accum = 0;
  a.map(function(item) {
    accum += item;
  });
  return accum;
}

console.log(sum(range(1,10)))
&#13;
&#13;
&#13;