从汤姆大叔的博客里看到了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