Script Preparation code:
AخA
 
var obj = {
    a: 1,
    b: 2,
    c: 3,
    d: 4,
    0: 'a',
    1: 'b',
    str: 'long string',
    nested: {
        nested: 0
    },
    hello: 55.5
};
Tests:
  • Object.entries

    x
     
    for (let i = 0; i < 10000; i++) {
        for (let entries = Object.entries(obj), i = entries.length - 1; i >= 0; i--) {
            console.log(entries[i])
        } 
    }
  • for..in

     
    for (let i = 0; i < 10000; i++) {
        for (let key in obj) {
            if (obj.hasOwnProperty(key)) {
                console.log([key, obj[key]])
            }
        } 
    }
  • Object.keys

     
    for (let i = 0; i < 10000; i++) {
        for (let keyArray = Object.keys(obj), i = keyArray.length - 1, key = keyArray[i]; i >= 0; key = keyArray[--i]) {
            console.log([key, obj[key]]);
        }
    }
  • Object.keys no entry

     
    for (let i = 0; i < 10000; i++) {
        for (let keyArray = Object.keys(obj), i = keyArray.length - 1, key = keyArray[i]; i >= 0; key = keyArray[--i]) {
            console.log(key, obj[key]);
        }
    }
  • for..in no array

     
    for (let i = 0; i < 10000; i++) {
        for (let key in obj) {
            if (obj.hasOwnProperty(key)) {
                console.log(key, obj[key])
            }
        } 
    }
  • Object.entries no array

     
    for (let i = 0; i < 10000; i++) {
        for (let entries = Object.entries(obj), i = entries.length - 1, entry = entries[i]; i >= 0; entry = entries[i--]) {
            
            console.log(entry[0], entry[1])
        } 
    }
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    Object.entries
    for..in
    Object.keys
    Object.keys no entry
    for..in no array
    Object.entries no array

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: 5 days ago)
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36
Chrome 133 on Windows
View result in a separate tab
Test name Executions per second
Object.entries 1.4 Ops/sec
for..in 1.6 Ops/sec
Object.keys 1.7 Ops/sec
Object.keys no entry 1.6 Ops/sec
for..in no array 2.2 Ops/sec
Object.entries no array 1.7 Ops/sec