Index of smallest (v2)

Revision 2 of this benchmark created on


Description

Setup

function makeRandomArray(length) {
     var a = new Array(length);
     for (var i = 0; i < a.length; i++) {
      a[i] = Math.random();
     }
     return a;
    }
    
    var array100k = makeRandomArray(100 * 1000);
    var array200k = makeRandomArray(200 * 1000);
    var array250k = makeRandomArray(250 * 1000);
    
    function indexOfSmallestManual(a) {
     var lowest = 0;
    var l=999999;
     for (var i = 1; i < a.length; i++) {
      if (a[i] < l) { lowest = i; l = a[i]; }
     }
     return lowest;
    }
    
    function indexOfSmallestReduce(a) {
     return a.reduce(function(lowest, next, index) {
                       return next < a[lowest] ? index : lowest; },
                     0);
    }
    
    function indexOfSmallestMinIndexOf(a) {
     return a.indexOf(Math.min.apply(Math, a));
    }

Test runner

Ready to run.

Testing in
TestOps/sec
manual 100k
indexOfSmallestManual(array100k);
 
ready
manual 200k
indexOfSmallestManual(array200k);
 
ready
manual 250k
indexOfSmallestManual(array250k);
 
ready
reduce 100k
indexOfSmallestReduce(array100k);
 
ready
reduce 200k
indexOfSmallestReduce(array200k);
 
ready
reduce 250k
indexOfSmallestReduce(array250k);
 
ready
min/indexOf 100k
indexOfSmallestMinIndexOf(array100k);
 
ready
min/indexOf 200k
indexOfSmallestMinIndexOf(array200k);
 
ready
min/indexOf 250k
indexOfSmallestMinIndexOf(array250k);
 
ready

Revisions

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