En resumen, esto funciona:Cómo utilizar Math.max, etc., como funciones de orden superior
[1, 2, 3].reduce(function (a, b) { return Math.max(a, b); });
=> 3
Pero esto no es así:
[1, 2, 3].reduce(Math.max);
=> NaN
desconcierto puro.
Esto está en Firefox 3.5.9, que supongo que está usando el mozilla standard implementation of reduce, FWIW.
Terminología nitpick: No está tratando de usar Math.max como una función de orden superior, sino para usarla como argumento para una función de orden superior. Usarlo como una función de orden superior significa usarlo con argumentos que son funciones (o usarlo para que devuelva una función). – sepp2k
@ sepp2k Nitpick perfectamente justo. :-) – cemerick
Reduce las especificaciones aquí https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/Reduce –