获取数组最大值

1、sort

1     var ary=[23,34,24,21,35,15];
2 //    方法1
3     ary.sort(function (a,b) {
4         console.log(a,b);
5         return a - b;
6     })
7     var min = ary[0];
8     var max = ary[ary.length-1];
9     console.log(min,max);

2、假设法:

    var ary=[23,34,24,21,35,15];
    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;
    }
    console.log(min,max);

3、Eval和Math中的max/min

  注:1)eval:把一个字符串变为js表达式执行

      eg:eval('12+23+34+45') //114

    2)括号表达式:(x1、x2、x3...)括号表达式,1个括号中出现多项内容中间可用“,”隔开,但最后获得的只有最后一项。eg:

      

function fn1() {
    console.log(1)
}
function fn2() {
    console.log(2)
}
(fn1,fn2)();//2
//    方法3
var max=eval('Math.max('+ary.toString()+')');
console.log(max);

4、apply:分析Math.min方法需要一个个传值进去,导致ary不是一起传入的,我们可以借助apply这个方法改进。

//方法4
var max = Math.max(23,24,25,21);
console.log(max);//25

var max = Math.max(ary);//NAN
console.log(max);

var max = Math.max.apply(null,ary);
console.log(max);//35

利用apply传参时,是传一个数组,但相当于一个个传入的。

      

var max=eval('Math.max('+ary.toString()+')');
console.log(max);
努力将自己的温暖带给身边的人!!!!!
原文地址:https://www.cnblogs.com/xiaoli52qd/p/6573334.html