求数组中元素的最大值、最小值
方法一 遍历数组
方法二 使用数组自带的排序方法,如: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;
}
<br>
//测试<br>var array = makeArray();
var
dt =
new
Date();
alert(
"value: "
+ array.max() +
" ms:"
+ ((
new
Date()) - dt) );
|
做瀑布流布局时需要找出最短/最长高度的列。如果将与列相关的数据保存在数组中就可以通过求数组中元素的最大值、最小值来找出最短/最长高度的列。