[英]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.