使用Mozilla的Javascript 1.6数组'扩展'函数(map,reduce,filter等),为什么以下按预期工作:
var max = [1,2,3].reduce(function(a,b) { return Math.max(a,b); });
但以下不起作用(产生NaN):
var max2 = [1,2,3].reduce(Math.max);
是因为Math.max是一个可变函数吗?
答案 0 :(得分:14)
Math.max
不知道如何处理所有额外变量function(previousValue, currentValue, index, array)
,最后主要是那个数组。
[].reduce.call([1,2,3,6],function(a,b) { return Math.max(a,b); });
这可以使用.call