找出数字数组中最大的元素(使用Math.max函数)
从汤姆大叔的博客里看到了6个基础题目:本篇是第1题 - 找出数字数组中最大的元素(使用Match.max函数)
从要求上来看,不能将数组sort、不能遍历。只能使用Math.max,所以只能从javascript的特征和本质方面着手。
分析:查找列表是一个数组,那么意味着我们要传入一个数组参数给Math.max,但是Math.max只能传入枚举参数,如下:
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两个方法,此处不详解,不明白者请自行百度!
转载请注明来自北磬书生的博客