Script Preparation code:
x
 
function makeid() {
  var text = "";
  var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
  for (var i = 0; i < 5; i++)
    text += possible.charAt(Math.floor(Math.random() * possible.length));
  return text;
}
window.parentObj = {};
window.parentObjArr = [];
for (let i = 0; i < 100; i++) {
    window.parentObj[makeid()] = makeid();
    parentObjArr.push(makeid());
}
Tests:
  • Object.entries

     
    const newObj = {};
    Object.entries(window.parentObj).forEach(([k, v], i) => {
      if ((i % 2) === 0) {
        newObj[k] = v;    
      }
    });
  • Object.keys

     
    const newObj = {};
    Object.keys(window.parentObj).forEach((k, i) => {
      if ((i % 2) === 0) {
        newObj[k] = window.parentObj[k];    
      }
    });
  • Object.keys with extra array

     
    const newObj = {};
    Object.keys(window.parentObj).forEach((k, i) => {
      const [extraK, v] = [k, window.parentObj[k]]
      if ((i % 2) === 0) {
        newObj[extraK] = v;    
      }
    });
  • Object.entries without array

     
    const newObj = {};
    Object.entries(window.parentObj).forEach((keyAndVal, i) => {
      if ((i % 2) === 0) {
        newObj[keyAndVal[0]] = keyAndVal[1];    
      }
    });
  • array

     
    const newObj = {};
    window.parentObjArr.forEach((keyAndVal, i) => {
      if ((i % 2) === 0) {
        newObj[keyAndVal[0]] = keyAndVal[1];    
      }
    });
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    Object.entries
    Object.keys
    Object.keys with extra array
    Object.entries without array
    array

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: 2 years ago)
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.63 Safari/537.36
Chrome 102 on Windows
View result in a separate tab
Test name Executions per second
Object.entries 44433.6 Ops/sec
Object.keys 60525.0 Ops/sec
Object.keys with extra array 36430.4 Ops/sec
Object.entries without array 45967.6 Ops/sec
array 339894.5 Ops/sec