求数组中元素的最大值、最小值
方法一 遍历数组
方法二 使用数组自带的排序方法,如: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) );
做瀑布流布局时需要找出最短/最长高度的列。如果将与列相关的数据保存在数组中就可以通过求数组中元素的最大值、最小值来找出最短/最长高度的列。