_.each vs .forEach (v2)

Revision 2 of this benchmark created on


Preparation HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.13.6/underscore-min.js"></script>

Setup

const array = [];
for (let i = 0; i < 1000; i++) {
  array.push({
    id: `id_${i}`,
    value: Math.random() * 100,
    initialValue: 0,
    processed: false,
    name: `Item ${i}`
  });
}
array.forEach((item) => item.initialValue = item.value);

// Approximate common operations:
// 1. Accessing properties of an object.
// 2. Performing a simple assignment or calculation.
// 3. Simulating a side effect.
let sideEffectCounter = 0;
const callback = (item, index) => {
  item.processed = true;
  item.value += index;
  sideEffectCounter += item.id.length;
};

Teardown

sideEffectCounter = 0;
for (let i = 0; i < array.length; i++) {
  array[i].processed = false;
  array[i].value = array[i].initialValue;
}

Test runner

Ready to run.

Testing in
TestOps/sec
_.each
_.each(array, callback);
ready
.forEach
array.forEach(callback);
ready

Revisions

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