In short, this works:
[1, 2, 3].reduce(function (a, b) { return Math.max(a, b); });
=> 3
But this doesn’t:
[1, 2, 3].reduce(Math.max);
=> NaN
Pure puzzlement.
This is in Firefox 3.5.9, which I presume is using the mozilla standard implementation of reduce, FWIW.
Math.maxcan be used as a higher-order function. The problem is.reducewill call the function with 4 arguments:here is
the_arrayis an array, soMath.maxreturns NaN. I don’t think there’s simpler way to discard the last 2 arguments.