HTML Preparation code:
AخA
 
1
<script src='https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.5/lodash.min.js'></script>
Script Preparation code:
x
 
var MyObject = {
  description: 'Creates a deep copy of source, which should be an object or an array.',
  myNumber: 123456789,
  myBoolean: true,
  jayson: {
    stringify: 'JSON.stringify() method converts a JavaScript value to a JSON string....',
    parse: 'JSON.parse() method parses a JSON string...'
  }
};
var myCopy = null;
function cloneObject(o) {
    if (typeof o !== 'object' || o === null) return o;
    let out = Array.isArray(o) ? [] : {};
    for (let k in o) {
        out[k] = (typeof o[k] === "object" && o[k] !== null)
            ? cloneObject(o[k])
            : o[k];
    }
    return out;
}
Tests:
  • Lodash cloneDeep

     
    myCopy = _.cloneDeep(MyObject);
  • Native structuredClone

     
    myCopy = structuredClone(MyObject);
  • My shitty simple clone logic

     
    myCopy = cloneObject(MyObject);
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    Lodash cloneDeep
    Native structuredClone
    My shitty simple clone logic

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: 2 years ago)
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36
Chrome 109 on Linux
View result in a separate tab
Test name Executions per second
Lodash cloneDeep 571579.1 Ops/sec
Native structuredClone 241363.4 Ops/sec
My shitty simple clone logic 1168613.2 Ops/sec