Test name | Executions per second |
---|---|
Lodash cloneDeep | 590334.8 Ops/sec |
Json clone | 347505.3 Ops/sec |
Fast deep clone | 806534.9 Ops/sec |
<script src='https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.5/lodash.min.js'></script>
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...'
}
};
function deepClone(preObj) {
let newObj, value, key;
if (typeof preObj !== "object" || preObj === null) {
return preObj;
}
newObj = Array.isArray(preObj) ? [] : {}
for (key in preObj) {
value = preObj[key];
newObj[key] = deepClone(value);
}
return newObj
}
var myCopy = null;
myCopy = _.cloneDeep(MyObject);
myCopy = JSON.parse(JSON.stringify(MyObject));
deepClone(MyObject)