從湯姆大叔的博客裏看到了6個基礎題目:本篇是第1題 - 找出數字數組中最大的元素(使用Match.max函數)javascript
從要求上來看,不能將數組sort、不能遍歷。只能使用Math.max,因此只能從javascript的特徵和本質方面着手。html
分析:查找列表是一個數組,那麼意味着咱們要傳入一個數組參數給Math.max,可是Math.max只能傳入枚舉參數,以下:java
Math.max(n1, [n2, [n3, [...]]])
有什麼方法能夠傳入一個數組並將這個數組中的每一個元素一一傳遞給Math.max呢?我想到的是Javascript中的call和apply方法,call只能傳遞枚舉參數,apply必須傳遞一個數組,且apply會將該數組的每個元素一一枚舉給其調用者,如此問題就解開了,個人代碼以下:數組
var arr = [1,9,4,5,12,-1]; console.log( Math.max.apply(this, arr) ); //12
解此題的要求是:能搞懂call和apply兩個方法,此處不詳解,不明白者請自行百度!app