Min and max in array (v8)

Revision 8 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 minForLoop = function(arr) {
      var len = arr.length,
        min = Infinity;
      for (var idx = 0; idx < len; ++idx) {
        if (arr[idx] < min) {
          min = arr[len];
        }
      }
      return min;
    };
    var maxForLoop = function(arr) {
      var len = arr.length,
        max = -Infinity;
      for (var idx = 0; idx < len; ++idx) {
        if (arr[idx] > max) {
          max = arr[len];
        }
      }
      return max;
    };

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
ForLoop
minForLoop(values);
maxForLoop(values);
ready

Revisions

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