Andrew P - 8 months ago 38

Javascript Question

Okay, so what I need to do is return the most middle value in an array. And I'm supposed to use

`Math.round`

That's what I need to do in text, since I'm new at javascript I don't however know how to quite execute this. Any ideas?

Also, if you think,this question doesn't belong here or is stupid, please direct me to somewhere where I can find this information, I'm just trying to learn here.

`function test(arr) {`

}

Answer

If you have an array with for example five items, the middle item is at index two:

```
var arr = [ item, item, middle, item, item];
```

Dividing the length by two and using `Math.round`

would give you index three rather than two, so you would need to subtract one from the length first:

```
var middle = arr[Math.round((arr.length - 1) / 2)];
```

You say in your question that you are supposed to use `Math.round`

, but if that is not a requirement, you can get the same result easier using `Math.floor`

:

```
var middle = arr[Math.floor(arr.length / 2)];
```

For an array with an even number of items, that will give you the second of the two items that are in the middle. If you want the first instead, use `Math.floor`

and substract one from the length. That still gives the same result for odd number of items:

```
var middle = arr[Math.floor((arr.length - 1) / 2)];
```

Source (Stackoverflow)