簡體   English   中英

如何使用 Math.max 等作為高階函數

[英]How to use Math.max, etc. as higher-order functions

簡而言之,這有效:

[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。

Math.max可以用作高階函數。 問題是.reduce將調用帶有 4 個參數的函數:

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

這里是the_array是一個數組,所以Math.max返回 NaN。 我認為沒有更簡單的方法可以丟棄最后兩個參數。

Math.max.apply(Math, [1, 2, 3]);
//3

不完全是更高階的用途,但這也有效:

Math.max(...myArray);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM