在學習中將數組取最大值和最小值的處理方法於此記錄:
方法一:
利用數組內置方法;
var ary=[12,13,25,56,44,33,13,26,67,79,21];
// 數組內置的sort方法
var a = ary.sort(function(a,b){
return a-b;
})
var min = a[0];
var max = a[ary.length - 1];
console.log(min,max)//12,79
方法二:
假設法,先假設第一個數爲最大/最小,然後對數組進行遍歷,依次比較,最大/最小保存,依次進行比較,比較完成後,取得最大/最小值
//假設法
var min = ary[0],max=ary[0];
for (let i = 0; i <= ary.length; i++) {
var cur = ary[i];
cur > max ? max = cur:null;
cur < min ? min = cur:null;
}
console.log(min,max);//12,79
方法三:
//Math方法,簡介間接進行處理
//Math方法不可以直接處理數組,必須將數據依次寫進去
//toString方法:將數組轉化爲字符串
//ary.toString() = "12,13,25,56,44,33,13,26,67,79,21";
//然後通過字符串拼接將表達式變爲一個整體
var a = "Math.min("+ary.toString()+")";
var b = "Math.max("+ary.toString()+")";
//然後再利用eval函數,去掉""即可按照正常js代碼處理
//eval方法,將字符串轉化爲js代碼
var min = eval(a);
var max = eval(b);
console.log(min,max)//12,79
####方法四:
apply方法:
var max = Math.max.apply(null,ary);
var min = Math.min.apply(null,ary);
console.log(min,max)//12,79
//apply(obj,[100,200])
//apply方法,在執行的時候第二個參數,會把形參放在一個數組中,但是也相當於一個一個形參賦值,由於未使用到this,所以第一個參數爲null