取數組最大值和最小值的方法彙總

在學習中將數組取最大值和最小值的處理方法於此記錄:

方法一:

利用數組內置方法;

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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章