JavaScript 數組最大值

JavaScript 數組最大值

在js中能夠使用Math.max()獲取最大值。javascript

如:java

console.log(Math.max("1","11","22"));
//output:22

可是若是咱們傳遞一個數組的話,上述代碼並不能正確輸出數組

如:app

var arrs=[1,2,5,10,30,99,22];
console.log(Math.max(Math,arrs));
//output:NaN

apply

使用apply方法能夠傳遞一個數組,獲取到最大值。函數

var arrs=[1,2,5,10,30,99,22];
console.log(Math.max.apply(Math,arrs));
//console.log(Math.max.apply(null,arrs));
//output: 99

什麼是apply

apply() 方法調用一個函數, 其具備一個指定的this值,以及做爲一個數組(或相似數組的對象)提供的參數。this

好比A有一個方法,而B沒有,可是這時B要用到A的方法,能夠把A的方法借給B使用。就用到了applycode

A.fun.apply(B,args);

apply(thisArg,[argsArray])該方法有兩個參數。對象

第一個參數是函數借給的對象ip

第二個參數是一個數組爲該函數的參數。console


map

map() 方法建立一個新數組,其結果是該數組中的每一個元素都調用一個提供的函數後返回的結果。

如:

var numbers = [1, 5, 10, 15];
var doubles = numbers.map( x => x ** 2);
console.log(doubles);
//output:[2,10,20,30]

若是咱們有一個對象數組,要獲取對象數組中的屬性的最大值。能夠使用map獲取到該屬性的數組,再使用Math.max.apply來獲取最大值。

如:

var list=[{name:"n1",age:1},{name:"n1",age:14},{name:"n1",age:31},{name:"n1",age:10},{name:"n1",age:22},];
console.log(Math.max.apply(null,list.map(x=>x.age)));
//output:31
相關文章
相關標籤/搜索