有两个东东,特别好用,一个叫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是如出一辙的。都是代入其他对象来替换当前对象,将当前对象没有功能用其他对象有的功能给替补上,我只能这样理解了。
参考:传送门