Test name | Executions per second |
---|---|
lodash cloneDeep | 1056352.5 Ops/sec |
my super deep cloner yeah | 979020.5 Ops/sec |
<script src='https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.5/lodash.min.js'>
const _ = lodash
</script>
_.cloneDeep({ prop: { subprop: 'value' } })
const trueclone = (obj) => {
const cloned = Array.isArray(obj) ? [] : {}
const keys = Object.keys(obj)
const values = Object.values(obj)
const length = keys.length
for (let i = 0; i < length; i++) {
if (typeof values[i] === 'object') values[i] = trueclone(values[i])
cloned[keys[i]] = values[i]
}
return cloned
}
trueclone({ prop: { subprop: 'value' } })
structuredClone({ prop: { subprop: 'value' } })