[javascript] 利用 Math.max 和 Math.min 取得陣列或物件的最大(小)值

分享:
標籤: javascript ES6

如果我們要在一個陣列或物件裡直接抓到最大或最小的值,用 ES6 寫法簡便很多,首先準備這樣的陣列和物件。

var arr = [1, 8, 3, 5];
var obj = [
    { own: 53, name: 'Jason' },
    { own: 50, name: 'Tom' },
    { own: 12, name: 'Susan' },
    { own: 41, name: 'Amy' }
];

 

本來我們要取得 arr 裡數值的最大最小值需要把數值一個一個放到 Math.max() 裡,利用 ES6 的展開運算子就可以精減成如下:

let max=Math.max(...arr) //8
let min=Math.min(...arr) //1

 

要對物件裡某個屬性抓到最大的值,則是使用 Arrow function 來改寫 Array.map() 組出來的值就好,要取最小值則把 min 取代 max 就好:

let most=Math.max(...obj.map(a => a.own))  //53
let least=Math.min(...obj.map(a => a.own)) //12