Fresheyeball - 1 year ago 147
Javascript Question

# Get largest value in multi-dimensional array javascript or coffeescript

I have an array that looks like the following:

``````array = [[1, 5], [4, 7], [3, 8], [2, 3],
[12, 4], [6, 6], [4, 1], [3, 2],
[8, 14]]
``````

What I need is the largest number from the first value of the sets, so in this case
`12`
.
Looking at some examples online, the best way I saw to accomplish this is :

``````Math.max.apply Math, array
``````

Problem is, this only works with single dimensional arrays. How would I impliment this for my senario? (jquery allowed)

The end solution:

It wasn't part of the question, but I needed both the min and max from the array, and that changes things a little.

``````    unless device.IE
justTheDates    = magnitudeArray.map (i) -> i[0]
@earliest       = Math.min.apply Math, justTheDates
@latest         = Math.max.apply Math, justTheDates
else
@earliest       = magnitudeArray[0][0]
@latest         = magnitudeArray[0][0]
for magnitudeItem in magnitudeArray
@earliest   = magnitudeItem[0] if magnitudeItem[0] < @earliest
@latest     = magnitudeItem[0] if magnitudeItem[0] > @latest
``````

You can use `.reduce()`...

``````array.reduce(function(max, arr) {
return Math.max(max, arr[0]);
}, -Infinity)
``````

Here's a version that doesn't use `Math.max`...

``````array.reduce(function(max, arr) {
return max >= arr[0] ? max : arr[0];
}, -Infinity);
``````

...and a jsPerf test.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download