tengo una matriz que tiene el siguiente aspecto:Obtener el valor más grande de matriz multidimensional javascript o CoffeeScript
array = [[1, 5], [4, 7], [3, 8], [2, 3],
[12, 4], [6, 6], [4, 1], [3, 2],
[8, 14]]
Lo que necesito es el mayor número desde el primer valor de los conjuntos, por lo que en este caso 12
. En cuanto a algunos ejemplos en línea, la mejor manera de vi para lograr esto es:
Math.max.apply Math, array
El problema es que esto sólo funciona con matrices unidimensionales. ¿Cómo podría implementar esto para mi senario? (Jquery permitió)
La solución final:
No era parte de la pregunta, pero necesitaba tanto el min y max de la matriz, y que cambia las cosas un poco.
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
+1 Para un ejemplo de plegado clásico :). A CoffeeScript [traducción] (http://coffeescript.org/#try:array%20%3D%20 [[1% 2C% 205]% 2C% 20 [4% 2C% 207]% 2C% 20 [3% 2C% 208]% 2C% 20 [2% 2C% 203]]% 0A% 0Amax% 20% 3D% 20array.reduce% 20% 28% 28max% 2C% 20arr% 29% 20-% 3E% 20Math.max% 20max% 2C% 20arr [0]% 29% 2C% 20-Infinity% 0Aconsole.log% 20max): 'max = array.reduce ((max, arr) -> Math.max max, arr [0]), - Infinity' – epidemian
Estoy viendo más votos para esta respuesta. ¿Alguien estaría interesado en presentar un caso sobre el que yo acepté? – Fresheyeball
@Fresheyeball: No me gustaría decir que uno es mejor que el otro. Un '.reduce()' solo evalúa un Array a un solo valor. Un '.map()' es básicamente un '.reduce()' que lo evalúa como una nueva colección. Entonces, un comportamiento '.map()' se puede lograr usando '.reduce()' como este: 'array.reduce (function (arr, curr) {arr.push (curr [0]); return arr;}, [ ]) '. Y aún seguirías usando 'Math.max.apply ...'. La ventaja de usar el estilo '.map()' con '.apply' es que evitas las repetidas llamadas' Math.max'. La ventaja de reducir directamente a un número es quizás un poco de claridad. –