Tests:
  • Using the spread operator

    AخA
     
    const firstObject = { sampleData: 'Hello world' }
    const secondObject = { moreData: 'foo bar' }
    const finalObject = {
        ...firstObject,
        ...secondObject
    };
  • Using Object.assign

     
    const firstObject = { sampleData: 'Hello world' }
    const secondObject = { moreData: 'foo bar' }
    const finalObject = Object.assign({}, firstObject, secondObject);
  • Using For-In loop

     
    const firstObject = { sampleData: 'Hello world' }
    const secondObject = { moreData: 'foo bar' }
    const finalObject = {}
    for (let key in firstObject) {
      finalObject[key] = firstObject[key];
    }
    for (let key in secondObject) {
      finalObject[key] = secondObject[key];
    }
  • Using For-In loop with hasOwnProperty

     
    const firstObject = { sampleData: 'Hello world' }
    const secondObject = { moreData: 'foo bar' }
    const finalObject = {}
    for (let key in firstObject) {
      if (Object.prototype.hasOwnProperty.call(firstObject, key)) {
        finalObject[key] = firstObject[key];
      }
    }
    for (let key in secondObject) {
      if (Object.prototype.hasOwnProperty.call(secondObject, key)) {
        finalObject[key] = secondObject[key];
      }
    }
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    Using the spread operator
    Using Object.assign
    Using For-In loop
    Using For-In loop with hasOwnProperty

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: 3 days ago)
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36
Chrome 134 on Windows
View result in a separate tab
Test name Executions per second
Using the spread operator 37821168.0 Ops/sec
Using Object.assign 28400752.0 Ops/sec
Using For-In loop 57670288.0 Ops/sec
Using For-In loop with hasOwnProperty 31112040.0 Ops/sec