var ary=[23,34,24,12,36,14,25,30];
1、数组排序法:
给数组进行排序(小-->大),第一个和最后一个即为所要的最大值和最小值:
ary.sort(function(a,b){
return a-b;
});
var max=ary[ary.length-1];
var min=ary[0];
2、假设法:
假设当前数组中的第一个值是最大值,然后拿这个值和后面的项逐一进行比较,如果后面某一个值比假设的还要大,说明假设错了,把假设的值进行替换
var max=ary[0],min=ary[0];
for(var i=1;i<ary.length;i++){
var cur=ary[i];
cur>max?max=cur:null;
cur<min?min=cur:null;
}
3、拼接字符串方法:
var max=eval("Math.max("+ary.toString()+")");
首先不管其他的,先把最后要执行的代码都变为字符串,然后把数组中的每一项的值分别的拼接到这个字符串中。之后再eval()执行(eval:把字符串转换为JS可执行代码)
注意:
a、直接Math.max([23,34,24,12,36,14,25,30])的话输出是NaN,因为Math.max()在执行的时候把需要比较的那堆数一个个传递进来,才可以得到结果,一下放一个ary数组是不行的
b、直接eval("23,34,24,12,36,14,25,30")也不行,只获取到了最后一项值
4、用apply:
var max=Math.max.apply(null,ary);
var min=Math.min.apply(null,ary);
apply传参是传一个数组,但相当于一个个传进来的