cem*_*ick 15 javascript functional-programming
简而言之,这有效:
[1, 2, 3].reduce(function (a, b) { return Math.max(a, b); });
=> 3
Run Code Online (Sandbox Code Playgroud)
但这不是:
[1, 2, 3].reduce(Math.max);
=> NaN
Run Code Online (Sandbox Code Playgroud)
纯粹的困惑.
这是在Firefox 3.5.9中,我认为它是使用reduce,FWIW 的mozilla标准实现.
ken*_*ytm 20
Math.max可以用作高阶函数.问题是.reduce将使用4个参数调用该函数:
Math.max(accumulator, value, index, the_array)
Run Code Online (Sandbox Code Playgroud)
这是the_array一个数组,所以Math.max返回NaN.我认为丢弃最后两个参数的方法并不简单.