Script Preparation code:
x
 
var items = Array.from(Array(1000), (_, x) => ({
    key: x,
    value1: Math.random() * 1000,
    value2: Math.random() * 1000
}));
var objContainer = {};
var arrContainer = [];
for (let i = 100; i >= 0; i--) {
    const index = Math.floor(Math.random() * 1000);
    const item = items[index];
    objContainer[item.key] = item;
    arrContainer.push(item)
}
Tests:
  • Object, for-in

     
    var result = [];
    for (var k in objContainer) {
        if (objContainer[k].value1 >= 0 && objContainer[k].value1 <= 499 && objContainer[k].value2 >= 500 && objContainer[k].value2 <= 999) {
          result.push(k);
        }
    }
  • Array, for-of

     
    var result = [];
    for (var item of arrContainer) {
        if (item.value1 >= 0 && item.value1 <= 499 && item.value2 >= 500 && item.value2 <= 999) {
          result.push(item.key);
        }
    }
  • Object, for

     
    var result = [];
    var keys = Object.keys(objContainer);
    for (var i = 0; i < keys.length; i++) {
        if (objContainer[keys[i]].value1 >= 0 && objContainer[keys[i]].value1 <= 499 && objContainer[keys[i]].value2 >= 500 && objContainer[keys[i]].value2 <= 999) {
          result.push(keys[i]);
        }
    }
  • Array, for

     
    var result = [];
    for (var i = 0; i < arrContainer.length; i++) {
        if (arrContainer[i].value1 >= 0 && arrContainer[i].value1 <= 499 && arrContainer[i].value2 >= 500 && arrContainer[i].value2 <= 999) {
          result.push(arrContainer[i].key);
        }
    }
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    Object, for-in
    Array, for-of
    Object, for
    Array, for

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: 2 years ago)
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36
Chrome 108 on Mac OS X 10.15.7
View result in a separate tab
Test name Executions per second
Object, for-in 65288.6 Ops/sec
Array, for-of 4189983.0 Ops/sec
Object, for 63273.3 Ops/sec
Array, for 61496.4 Ops/sec