从数组中的一系列数字求和

时间:2017-06-16 10:10:27

标签: javascript arrays

@fields.age

有人可以告诉我为什么没有得到 arr 的总和。总和不断返回 0

4 个答案:

答案 0 :(得分:1)

您的sum函数不应嵌套到range函数中。 sum函数也应该将数组作为参数,这里是更新的代码:

function range(start, end) {
    var arr = [];
    for (var i = start; i < end + 1; i += 1)
        arr.push(i);
    return arr;
}
function sum(arr) {
   arr.reduce(function (a, b) {
     return a + b;
   }, 0);
}

var arr = range(5, 15);
console.log(arr);
console.log(sum(arr)); 

答案 1 :(得分:1)

函数sum未在正确的范围内定义。

试试这个:

&#13;
&#13;
function range(start, end) {
        var arr = [];
        for (var i = start; i < end + 1; i += 1)
            arr.push(i);
        return arr;
    
    };
    
    function sum(arr) {
        return arr.reduce(function (a, b) {
            return a + b;
        }, 0);
    }
    console.log(range(5, 15));
    console.log(sum(range(5, 15)));
&#13;
&#13;
&#13;

答案 2 :(得分:1)

你可以试试这个:

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

function sum(arr) {
       return arr.reduce(function (a, b) {
            return a + b;
        }, 0);
}
var tmp1 = range(5, 15);
console.log(tmp1);
console.log(sum(tmp1));

答案 3 :(得分:0)

 var arr = [];
 function range(start, end) {

    for (var i = start; i < end + 1; i += 1)
        arr.push(i);
    return arr;

 }
 function sum() {
    return arr.reduce(function (a, b) {
            return a + b;
        }, 0);
     }
  console.log(range(5, 15));
  console.log(sum());