Как использовать Math.max и т. Д. В качестве функций высшего порядка - PullRequest
15 голосов
/ 18 мая 2010

Короче, это работает:

[1, 2, 3].reduce(function (a, b) { return Math.max(a, b); });
=> 3

Но это не так:

[1, 2, 3].reduce(Math.max);
=> NaN

Чистая загадка.

Это в Firefox 3.5.9, который, как я полагаю, использует стандартную реализацию mozilla для Reduce FWIW.

Ответы [ 2 ]

20 голосов
/ 18 мая 2010

Math.max может использоваться как функция высшего порядка. Проблема в .reduce вызовет функцию с 4 аргументами:

Math.max(accumulator, value, index, the_array)

здесь the_array - это массив, поэтому Math.max возвращает NaN. Я не думаю, что есть более простой способ отбросить последние 2 аргумента.

0 голосов
/ 11 ноября 2016
Math.max.apply(Math, [1, 2, 3]);
//3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...