题目:如何用Math.max/Math.min 对数组进行求值

Math.min()和Math.max()方法

这两个方法都可以接受任意多个数值参数,如下面的例子:

var max = Math.max(3, 54, 32, 16);
alert(max);		//54

var min = Math.min(3, 54, 32, 16);
alert(min);		//3

这两个方法经常用于避免多余的循环和在if语句中确定一组数的最大值。
但不适用于在数组中使用。

var max = Math.max([3, 54, 32, 16]);
alert(max);		//NaN

但有一个技巧可以帮助我们克服这个问题:apply

var max = Math.max.apply(null,  [3, 54, 32, 16]);
alert(max);		//54

apply可以将一个数组默认的转换为一个参数列表
将([param1,param2,param3] 转换为 param1,param2,param3
一般情况下求数组最大值会使用循环,这个技巧可以帮我们减少代码量。

参考《JavaScript高级程序设计(第三版)》 P134


版权声明:本文为qq_17241921原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。