martin
martin

Reputation: 13

sum from a range of numbers in an array

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

Can someone please tell me why am not getting the sum of arr.The sum keeps returning 0

Upvotes: 0

Views: 108

Answers (4)

Zenoo
Zenoo

Reputation: 12880

The function sum is not defined in the right scope.

Try this :

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)));

Upvotes: 1

Kalaiselvan
Kalaiselvan

Reputation: 2134

 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());

Upvotes: 0

Taras Kovalenko
Taras Kovalenko

Reputation: 2393

you can try this:

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));

Upvotes: 1

ttncrch
ttncrch

Reputation: 7253

You sum function should not be nested into the range function. Your sum function should also take an array as parameter, here is the code updated:

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)); 

Upvotes: 1

Related Questions