在JavaScript中,當要求一串數中的最大值或最小值時,可以使用Math.max()和Math.min()來實作,使用方法如下:
Math.max(12, 15, 0, 20, -1);//20
Math.min(12, 15, 0, 20, -1);//-1
但尴尬的是,Math.max()和Math.min()不允許傳入數組,是以在ES5或者更早的版本中,可能需要手動實作重數組中周遊取值, 或使用apply()方法:
var values = [12, 15, 0, 20, -1];
var max = Math.max.apply(Math, values);//20
var min = Math.min.apply(Math, values);//-1
這個方法确實比較友善可行,但總會讓我們摸不着頭腦;是以在ES6中,Math.max()和Math.min()得到了改進,無須再調用apply()方法,隻需要傳入一個數組,就可求出這個數組的最大或最小值,這是用于ES6使用了展開運算符“...”,JavaScript引擎讀取後會将參數數組分割為各自獨立的參數并依次傳入:
let values = [12, 15, 0, 20, -1];
let max1 = Math.max(...values);//20
let min1 = Math.min(...values);//-1
let max2 = Math.max(...values, 100)//100
let min2 = Math.min(...values, -3)//-3
怎麼樣,ES6的這個更新是不是比以前更加友善了?趕快使用吧