Как использовать Math.max, и т.д. как функции высшего порядка

Короче говоря, это работает:

[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, уменьшают, FWIW.

15
задан cemerick 18 May 2010 в 11:21
поделиться

1 ответ

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

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

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

20
ответ дан 1 December 2019 в 03:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: