# Sum numbers in a range task

``````**Tell us what's happening:**
Describe your issue in detail here.
why is my code not passing??

```js

function sumAll(arr) {
var newArr = []
var arr1 = Math.min(arr, arr)
var arr2 = Math.max(arr, arr)
for (let i = arr; i <= arr; i++) {
newArr.push(i);
}
return newArr.reduce(function(a, b) {
return a + b;
});
}

console.log(sumAll([1, 4]));
``````
``````  **Your browser information:**
``````

User Agent is: `Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:99.0) Gecko/20100101 Firefox/99.0`

Challenge: Sum All Numbers in a Range

Take a look at values you are using in your `for` loop.

You create `arr1` and `arr2` to hold the min an max values, but it doesn’t look like they’re being used anywhere.

1 Like
``````
function sumAll(arr) {

var newArr = []

var arr1 = Math.min(arr, arr)

var arr2 = Math.max(arr, arr)

for (let i = arr; i <= arr; i++) {

newArr.push(i);

}

return newArr.reduce(function(a, b) {

return a + b;

});

}

console.log(sumAll([1, 4]))

``````

What happens when you give an argument of `[4, 1]`?

Your `for` loop is initialized with the value at `arr` and stops when it’s more than `arr`.

``````// arr === 4
// arr === 1
for (let i = 4; i <= 1; i++) {} // this loop wouldn't run
``````
1 Like

should it start initialiazation with the arr??

why did you do this? what was your reasoning? and why do you never use `arr1` and `arr2`?

3 Likes

i did that to get largest number

Why do you need the largest number?

i dont know . i was just following the hint provided on the challlenge

If you `console.log(i)` in your `for` loop, what values do you see?

The principle of the challenge is to loop between the smallest and largest values, but you have to know which is larger and which is smaller in order to do that. If you don’t you risk the loop not running at all.

You have `arr1` and `arr2` as a way to find which is which, but now you’ll need to use these.

Given you’re working with a `for` loop, were would they fit best?

1 Like

Forget the hints. Forget about arrays.

Do you know how to write a simple for loop that adds together all numbers from 2 to 8?

Once you have that, then you modify your code to put the little number in the input array where 2 is and the big number where 8 is.

1 Like

Ok. Consider @8-bitgaming’s response above with the `for` loop example. If you want to iterate from one number to another number by counting up (`i++`), you will have to start with the lower number and count up to the higher number. You obviously can’t count from 7 to 4, for example, by adding 1 to 7 each time. You are using `Math.min` and `Math.max` to find the lower number and the higher number. You are assigning variables to those values:

You probably want to use those in your `for` loop instead of always using the first element of the array as the initial value, and the second as the end. As @8-bitgaming illustrated, the code inside the `for` loop won’t execute when the initial value is higher than the end value.

2 Likes

Side note, arr1 and arr2 are bad variable names. Those are not arrays.

3 Likes
``````function sumAll(arr) {
var newArr = []
for  (let i = 1; i <= 4; i++) {
newArr.push(i);
}
return newArr.reduce(function(a, b) {
return a + b;
});
}

console.log(sumAll([1, 4]));
``````

Currently you are not using the function argument. You had code above about finding the min and max of the inputs. Where did that part go?

oh i thought the min and max are irrelevant here.i will have to start allover

In case you missed the instructions

We’ll pass you an array of two numbers. Return the sum of those two numbers plus the sum of all the numbers between them. The lowest number will not always come first.

You must use the two elements in the input array.

finally i crushed it!!! ``````function sumAll(arr) {
let min  = Math.min(...arr);
let max = Math.max(...arr);