Mehmet Øzer
Mehmet Øzer

Reputation: 1

How can i get the sum of the array i declare in the range function?

I've made the range function which gives me the integers between start and end. Now i have to make a sum function, that takes range as a parameter and gives the sum of that.

function range(start, end) {

    let numbers = [];

    for(i=start; i <= end; i++) {

        numbers.push(i);

    }
    return numbers;
}
console.log(range(1,5));

function sum(arrayOfNumbers) {

    var sumOfNo;

    for(i=0; i <= arrayOfNumbers; i++) {
        
        arrayOfNumbers += sumOfNo;
    }

    return sumOfNo;
}
console.log(sum(range(10,15)));

Upvotes: 0

Views: 69

Answers (3)

Kasun Alwis
Kasun Alwis

Reputation: 46

you can use reduce for this

function range(start, end) {

  let numbers = [];

  for (i = start; i <= end; i++) {

    numbers.push(i);

  }
  return numbers;
}
console.log(range(10, 15));

function sum(arrayOfNumbers) {

  return arrayOfNumbers.reduce((a, n) => {
    return a += n;
  }, 0)
}
console.log(sum(range(2, 4)));

Upvotes: 1

Sunil Kumar
Sunil Kumar

Reputation: 420

function getSumFromRange(start, end) {
   return ((end * (end + 1)) / 2) - ((start * (start + 1)) / 2) + start;
}
console.log(getSumFromRange(1, 10));

JSFiddle : click here

it will be the efficient way to find sum of range. using simple liner female, refer The nth partial sum of the series

Upvotes: 0

urchmaney
urchmaney

Reputation: 618

Some errors I find from the code (in sum function)

  • for loop need to loop less than arrayOfNumbers.length not arrayOfNumbers
  • values need to be added to the sumOfNo not the other way around.

the following resolves it.

function range(start, end) {

    let numbers = [];

    for(i=start; i <= end; i++) {

        numbers.push(i);

    }
    return numbers;
}
console.log(range(1,5));

function sum(arrayOfNumbers) {

    var sumOfNo = 0;

    for(i=0; i < arrayOfNumbers.length; i++) {
        
        sumOfNo += arrayOfNumbers[i];
    }

    return sumOfNo;
}
console.log(sum(range(10,15)));

Upvotes: 0

Related Questions