leoyaojy / tips

tips收藏夹,详见issues
30 stars 3 forks source link

12、求数组的最大值和最小值 #12

Open leoyaojy opened 7 years ago

leoyaojy commented 7 years ago

排序后取值


var arr=[90,28,14,50,66,77,23,10];
arr.sort(function(a,b){
    return a-b;
});
console.log("Min:"+arr[0]+"\tMax:"+arr[arr.length-1]);

假设法


var arr=[90,28,14,50,66,77,23,10],max=arr[0],min=arr[0];
for(var i=0,len=arr.length;i<len;i++){
    var a = arr[i];
    a>max?max=a:null;
    a<min?min=a:null;
}
console.log("Min:"+min+"\tMax:"+max);

Math的max、min方法


注意:直接往Math.max方法里放数组是不行的,需要一个个地传递进去

var max = Math.max(90,28,14,50,66,77,23,10);
var min = Math.min(90,28,14,50,66,77,23,10);
console.log("Min:"+min+"\tMax:"+max);

eval


var arr=[90,28,14,50,66,77,23,10];
var min = eval("Math.min("+arr.toString()+")");
var max = eval("Math.max("+arr.toString()+")");
console.log("Min:"+min+"\tMax:"+max);

apply


var arr=[90,28,14,50,66,77,23,10];
var min = Math.min.apply(null,arr);
var max = Math.max.apply(null,arr);
console.log("Min:"+min+"\tMax:"+max);