var arr = [3,12,23,18,25,33,22,30,1]
方案一: 思想 首先对数组进行排序(小 》大),第一项为最小值,最后一项为最大值
var min;
var max;
arr.soft(function(a,b){return a-b;})
min = arr[0];
max = arr[arr.length-1];
方案二: 思想 采用Math对象里的min()方法和 max()方法,需要将比较的数一个一个的传递进来才能比较,但是可以通过以下方式转化即可;
var min = Math.min(arr);
console.log(min) // NAN
console.log(Math.min(3,12,23,18,25,33,22,30,1)) // 1
console.log(Math.max(3,12,23,18,25,33,22,30,1)) // 33
var min =eval("Math.min(" +arr.toString()+")"); // 1 采用字符串拼接
var min = eval("Math.max(" +arr.toString()+")");; // 33
var min = Math.min.apply(obj,arr) // 1 利用apply方法一项一项传质的特点
var max =Math.max.apply(obj,arr) // 33
方案三: 思想 假设法: 假设第一项为最小项或者最大项,依次和后面的进行比较求得最小值或者最大值;
Array.prototype.compareVal = function(){
if(this instanceof Array){
var min = this[0];
var max = this[0];
for(var i = 0; i < this.length; i++){
var cur = this[i];
cur > max ? max = cur : null;
cur < min ? min = cur : null;
}
console.log("min= " +min+ ",max = " +max); // min=1 ,max = 33
}
}
arr.compareVal();