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