1. 程式人生 > >【Web前端】從陣列中找最大/最小值

【Web前端】從陣列中找最大/最小值

前言

因為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];
}