function cloneObject(obj) {
const clone = Object.keys(obj).reduce((acc, prop) => {
acc[prop] = obj[prop] === Object(obj[prop]) ? cloneObject(obj[prop]) : obj[prop];
return acc;
}, {});
return clone;
};
Based on Lyndsey Browning's Deep Cloning JavaScript Objects that added