获取数组最大值--4种方法

2017-07-26  本文已影响0人  gaoqizhuhui

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传参是传一个数组,但相当于一个个传进来的

上一篇 下一篇

猜你喜欢

热点阅读