【Web前端】從陣列中找最大/最小值
阿新 • • 發佈:2019-02-13
前言
因為Math.max() 以及 Math.min() 方法中傳入的應該是一組數,陣列是接收不了的,所以對從陣列中找最大值的方法做一些總結。
方法一
Math.max.apply(null, arr);
Math.min.apply(null, arr);
apply方法:
語法:apply([thisObj,[argArray]])
定義:應用某一物件的一個方法,用另一個物件替換當前物件。
說明:
如果 argArray 不是一個有效的陣列或者不是 arguments 物件,那麼將導致一個 TypeError。
如果沒有提供 argArray 和 thisObj 任何一個引數,那麼 Global 物件將被用作 thisObj, 並且無法被傳遞任何引數。
方法二
Math.max(…arr);
Math.min(…arr);
…操作符
這是 es6 中的擴充套件運算子,可以將一個數組,變為引數序列。
方法三
自定義函式,利用迭代
function getMax(arrays){ arrays.push(Math.max(arrays.pop(),arrays.pop())); if(arrays.length>1){ getMax(arrays); } return arrays[0]; } function getMin(arrays){ arrays.push(Math.min(arrays.pop(),arrays.pop())); if(arrays.length>1){ getMin(arrays); } return arrays[0]; }