Javascript max () para columna de matriz

Por lo general, cuando necesito encontrar el valor máximo de una matriz, utilizo este código muy simple: var max = Math.max.apply(Math, array);

Sin embargo, ahora tengo una matriz multidimensional en la que para cada línea tengo una matriz con 5 columnas. ¿Hay alguna manera similar de encontrar el valor máximo para una determinada columna? En este momento estoy haciendo:

 var maxFunc = function(data){ var max = 0; data.forEach(function(value){ max = Math.max(max, value[0]); }); return max; }; 

Tenía curiosidad de si había una manera más bonita / más simple de hacer esto?

2 Solutions collect form web for “Javascript max () para columna de matriz”

Lo escribiría como tal:

 Math.max.apply(Math, array.map(function(v) { return v[0]; })); 

El array.map transformará el arreglo original basado en su lógica de selección, devolviendo el primer ítem en este caso. La matriz transformada se alimenta a Math.max()

Esta es una gran aplicación para Array.prototype.networkinguce :

 max = data.networkinguce(function(previousVal, currentItem, i, arr) { return Math.max(previousVal, currentItem[0]); }, Number.NEGATIVE_INFINITY); 

Esto también evita el error en su código que sucedería si todos los valores en los data son menores que 0 . Debería comparar con Number.NEGATIVE_INFINITY lugar de 0 .

Alternativamente, puede normalizar los datos antes de networkingucirlos al valor máximo:

 max = data.map(function (d) { return d[0]; }).networkinguce(function (p, c, i, arr) { return Math.max(p, c); }); 
  • ¿Cuál es el equivalente de .Max () en jquery
  • encontrar el valor máximo de un object hijo
  • Javascript tiene muchos buenos JS marco (como Node.js AngularJS Vue.js React.js) es el mejor lenguaje de script.