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);