Min and max in array (v4)

Revision 4 of this benchmark created on


Setup

var values = [41,73,98,62,85,51,28,89,20];
    
    var minReduce = function (arr) {
      return arr.reduce(function (p, v) {
        return ( p < v ? p : v );
      });
    };
    var maxReduce = function (arr) {
      return arr.reduce(function (p, v) {
        return ( p > v ? p : v );
      });
    };
    
    var minMath = function (arr) {
      return Math.min.apply(Math, arr);
    };
    var maxMath = function (arr) {
      return Math.max.apply(Math, arr);
    };
    
    var minLoop = function (arr) {
      var len = arr.length, min = Infinity;
      while (len--) {
        if (arr[len] < min) {
          min = arr[len];
        }
      }
      return min;
    };
    var maxLoop = function (arr) {
      var len = arr.length, max = -Infinity;
      while (len--) {
        if (arr[len] > max) {
          max = arr[len];
        }
      }
      return max;
    };
    
    var minVar = function(arr) {
      return Math.min(...arr);
    }
    
    var maxVar = function(arr) {
      return Math.max(...arr)
    }

Test runner

Ready to run.

Testing in
TestOps/sec
Reduce
maxReduce(values);
minReduce(values);
ready
Math
maxMath(values);
minMath(values);
ready
Loop
maxLoop(values);
minLoop(values);
ready
Variadic
maxVar(values);
minVar(values);
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.