数组最大元素及下标

有两个东东,特别好用,一个叫call一个叫apply;这是两个方法,很厉害。

求最大数,当然,最小数也是一样的。

var arr=[1,2,3,4,5,6,10,7,9,11,20,19];

alert(Math.min.apply(null,arr));//获取数组中最小值

alert(Math.max.apply(null,arr));//获取数组中的最大值

求最大值下标

var index_ =arr.indexOf(Math.max.apply(Math, arr)); //获取最大值的下标 同理,最小下标就是min了。

那么这是什么原理呢?

apply方法: 
语法:apply([thisObj[,argArray]]) 
定义:应用某一对象的一个方法,用另一个对象替换当前对象。 
说明: 
如果 argArray 不是一个有效的数组或者不是 arguments 对象,那么将导致一个 TypeError。 
如果没有提供 argArray 和 thisObj 任何一个参数,那么 Global 对象将被用作 thisObj, 并且无法被传递任何参数。

  apply指代的参数必须是数组形式,且作用和call是如出一辙的。都是代入其他对象来替换当前对象,将当前对象没有功能用其他对象有的功能给替补上,我只能这样理解了。

参考:传送门

原文地址:https://www.cnblogs.com/webSong/p/7225112.html