HTML Preparation code:
AخA
 
1
<script src='https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.5/lodash.min.js'></script>
2
<script type="module">
3
  import fastCopy from 'https://cdn.skypack.dev/fast-copy';
4
  window.fastCopy = fastCopy;
5
</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 recursiveDeepCopy(o) {
    var newO,
      i;
  
    if (typeof o !== 'object') {
      return o;
    }
    if (!o) {
      return o;
    }
  
    if ('[object Array]' === Object.prototype.toString.apply(o)) {
      newO = [];
      for (i = 0; i < o.length; i += 1) {
        newO[i] = recursiveDeepCopy(o[i]);
      }
      return newO;
    }
  
    newO = {};
    for (i in o) {
      if (o.hasOwnProperty(i)) {
        newO[i] = recursiveDeepCopy(o[i]);
      }
    }
    return newO;
  }
Tests:
  • Lodash cloneDeep

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

     
    myCopy = structuredClone(MyObject);
  • recursiveDeepCopy

     
    myCopy = recursiveDeepCopy(MyObject);
  • Json Clone

     
    myCopy = JSON.parse(JSON.stringify(MyObject));
  • Fast Copy

     
    myCopy = fastCopy(MyObject);
  • chatGptDeepClone

     
    function chatGptDeepClone(obj) {
      if (obj === null || typeof obj !== 'object') {
        return obj;
      }
      let clone = Array.isArray(obj) ? [] : {};
      for (let key in obj) {
        if (Object.prototype.hasOwnProperty.call(obj, key)) {
          clone[key] = chatGptDeepClone(obj[key]);
        }
      }
      return clone;
    }
    myCopy = chatGptDeepClone(MyObject);
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    Lodash cloneDeep
    Native structuredClone
    recursiveDeepCopy
    Json Clone
    Fast Copy
    chatGptDeepClone

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: one year ago)
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36
Chrome 114 on Linux
View result in a separate tab
Test name Executions per second
Lodash cloneDeep 656363.9 Ops/sec
Native structuredClone 266193.1 Ops/sec
recursiveDeepCopy 905176.3 Ops/sec
Json Clone 403752.7 Ops/sec
Fast Copy 1110312.6 Ops/sec
chatGptDeepClone 609482.2 Ops/sec