# 前言
因為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]
}
```