Native for loop vs. Array.forEach and Array.map vs. lodash forEach (v23)

Revision 23 of this benchmark created on


Description

Just doing some benchmarks.

Preparation HTML

<script src="//cdnjs.cloudflare.com/ajax/libs/lodash.js/2.3.0/lodash.min.js"></script>

<script>
var a = [],
    newArray = [];


function forLoop(array, fn) {
    for (var index = 0, len = array.length; index < len; ++index) {
        fn(array[index]);
    }
}

function process(i) {
    return i * i + i;
}

function iterator(i) {
    newArray.push(process(i));
}

function reportArray(name, array) {
    console.log('' + name + ': [' + array[0] + '..' + array[array.length-1] + '] (' + a.length + ')');
}

function reportResults() {
    reportArray('a', a);
    reportArray('newArray', newArray);
}

</script>

Setup

a.length = 0;
    newArray.length = 0;
    
    for (var i = 1, len = 1000; i <= len; ++i) {
        a.push(i);
    }

Test runner

Ready to run.

Testing in
TestOps/sec
for loop
forLoop(a, iterator);
ready
Array.forEach
a.forEach(iterator);
ready
Array.map
newArray = a.map(process);
ready
lodash.forEach
_.forEach(a, iterator);
ready
lodash.map
newArray = _.map(a, process);
ready

Revisions

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