有兩個東東,特別好用,一個叫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是如出一轍的。都是代入其他對象來替換當前對象,將當前對象沒有功能用其他對象有的功能給替補上,我只能這樣理解了。
參考:傳送門