Reputation: 13
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
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
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
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
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