# 前言
因为Math.max() 以及 Math.min() 方法中传入的应该是一组数,数组是接收不了的,所以对从数组中找最大值的方法做一些总结。
## 方法一 apply
```
Math.max.apply(null, arr)
Math.min.apply(null, arr)
```
apply方法:
语法:apply([thisObj,[argArray]])
定义:应用某一对象的一个方法,用另一个对象替换当前对象。
说明:
如果 argArray 不是一个有效的数组或者不是 arguments 对象,那么将导致一个 TypeError。
如果没有提供 argArray 和 thisObj 任何一个参数,那么 Global 对象将被用作 thisObj, 并且无法被传递任何参数。
## 方法二:...操作符
```
Math.max(…arr)
Math.min(…arr)
```
…操作符
这是 es6 中的扩展运算符,可以将一个数组,变为参数序列。
## 方法三 自定义函数,递归调用
```
function getMax(array) {
array.push(Math.max(array.pop(), array.pop()))
if (array.length>1) {
getMax(array)
}
return array[0]
}
function getMin(array) {
array.push(Math.min(array.pop(), array.pop()))
if(array.length > 1){
getMin(array)
}
return array[0]
}
```