JSFiddle - React, Tailwind, and code Playground
HTML
<script src="https://rawgit.com/eu81273/jsfiddle-console/master/console.js"></script>
JavaScript
const deepClone = (obj, output = (Array.isArray(obj) ? [...obj] : {...obj})) => {
Object.keys(obj).forEach((key) => {
if (typeof obj[key] === 'object') {
output[key] = Array.isArray(obj[key]) ? [...obj[key]] : {...obj[key]}
deepCopy(obj[key], output[key])
}
})
return output
}
let testObject = {
counter: 1
}
let newObject = deepClone(testObject)
newObject.counter++
console.log("testObject data is " + testObject.counter)
console.log("newObject data is " + newObject.counter)