1. 程式人生 > >js取陣列最大值,最小值的方式

js取陣列最大值,最小值的方式

var arr = [7,2,0,-3,5];

1.apply()應用某一物件的一個方法,用另一個物件替換當前物件

let max = Math.max.apply(null,arr);
let min = Math.min.apply(null,arr);
console.log(max, min)

由於max()裡面引數不能為陣列,所以藉助apply(funtion,args)方法呼叫Math.max(),function為要呼叫的方法,args是陣列物件,當function為null時,預設為上文,即相當於apply(Math.max,arr)

2.call()呼叫一個物件的一個方法,以另一個物件替換當前物件

let max = Math.max.call(null,7,2,0,-3,5)
let min = Math.min.call(null,7,2,0,-3,5)
console.log(max, min)


call()與apply()類似,區別是傳入引數的方式不同,apply()引數是一個物件和一個數組型別的物件,call()引數是一個物件和引數列表

3.sort()+reverse() 存在問題 只會排序陣列的前兩項不建議使用

//sort()排序預設為升序,reverse()將陣列掉個
var max3 = arr.sort().reverse()[0];
console.log(max3)


4.sort()

//b-a從大到小,a-b從小到大
var max2 = arr.sort(function(a,b){
    return b-a;
})[0];
console.log(max2)