求數組中元素的最大值、最小值
方法一 遍歷數組
方法二 使用數組自帶的排序方法,如:array.sort() 。返回的數組中第一個元素值最小,最后一個元素值最大
方法三 使用Math對象的Math.min(arg1, arg2[,...])、Math.max(arg1, arg2[,...])方法,經測試這種方式較前面兩種性能更好。使用函數對象的apply方法可以將參數列表作為數組進行傳遞,如果數組元素是自定義對象可以先重寫元素的valueOf方法再調用,下面是實現代碼:
//最大值 Array.prototype.max = function(){ return Math.max.apply(Math, this); } //最小值 Array.prototype.min = function(){ return Math.min.apply(Math, this); } //輔助函數,創建用於測試的隨機數組 function makeArray (){ var original = []; for (var i = 0, l = 100000; i < l; i++) { original[i] = i + 1; } original.sort(function () { return 0.5 - Math.random(); }); return original; }
//測試
var array = makeArray(); var dt = new Date(); alert( "value: " + array.max() + " ms:" + ((new Date()) - dt) );
做瀑布流布局時需要找出最短/最長高度的列。如果將與列相關的數據保存在數組中就可以通過求數組中元素的最大值、最小值來找出最短/最長高度的列。