具体用哪种方法,要看你的问题规模。代码的精简不一定有较高的执行效率。
如果你的数组很大,排序要花很长的时间。
请看下例:
<script language=javascript>
function minmax(ar){
var ma = mi = ar[0];
for(var i=0; i<ar.length;i++){
if(mi>ar[i]) mi = ar[i];
if(ma<ar[i]) ma = ar[i];
}
this.max = ma;
this.min = mi;
}
var arr = new Array();
for(var i=0; i<10000; arr[i++]=Math.random());
var t1 = new Date();
arr.sort(function(a,b){return a-b});
var mn1 = arr[0];
var mx1 = arr[arr.length-1];
var t2 = new Date();
var t = new minmax(arr);
var mn2 = t.min
var mx2 = t.max;
var t3 = new Date();
alert("result: sort " + mn1 + " " + mx1+ "\nresult:minmax " + mn2 + " " + mx2);
alert("sort method time: " + (t2-t1));
alert("my function time:" + (t3-t2));
</script>
javascript好像没有,不过自己写一个应该不是太难吧?
<script language="JavaScript">
<!--
function max(arr){
var m = arr[0];
for(var i=0; i<arr.length;i++)
if(arr[i]>m) m = arr[i]
return m
}
function min(arr){
var m = arr[0];
for(var i=0; i<arr.length;i++)
if(arr[i]<m) m = arr[i]
return m
}
var a = new Array(0,34,5,9,10);
alert(a);
alert(max(a));
alert(min(a));
//-->
</script>