Find the min/max element of an Array in JavaScript

前端 未结 30 2635
無奈伤痛
無奈伤痛 2020-11-21 06:18

How can I easily obtain the min or max element of a JavaScript Array?

Example Psuedocode:

let array = [100, 0, 50]

array.min() //=> 0
array.max()         


        
30条回答
  •  野性不改
    2020-11-21 06:37

    Iterate through, keeping track as you go.

    var min = null;
    var max = null;
    for (var i = 0, len = arr.length; i < len; ++i)
    {
        var elem = arr[i];
        if (min === null || min > elem) min = elem;
        if (max === null || max < elem) max = elem;
    }
    alert( "min = " + min + ", max = " + max );
    

    This will leave min/max null if there are no elements in the array. Will set min and max in one pass if the array has any elements.

    You could also extend Array with a range method using the above to allow reuse and improve on readability. See a working fiddle at http://jsfiddle.net/9C9fU/

    Array.prototype.range = function() {
    
        var min = null,
            max = null,
            i, len;
    
        for (i = 0, len = this.length; i < len; ++i)
        {
            var elem = this[i];
            if (min === null || min > elem) min = elem;
            if (max === null || max < elem) max = elem;
        }
    
        return { min: min, max: max }
    };
    

    Used as

    var arr = [3, 9, 22, -7, 44, 18, 7, 9, 15];
    
    var range = arr.range();
    
    console.log(range.min);
    console.log(range.max);
    

提交回复
热议问题