deep-clone.js 431 B

123456789101112131415161718
  1. // form: https://www.30secondsofcode.org/js/s/deep-clone
  2. const deepClone = obj => {
  3. if (obj === null) return null;
  4. let clone = Object.assign({}, obj);
  5. Object.keys(clone).forEach(
  6. key =>
  7. (clone[key] =
  8. typeof obj[key] === 'object' ? deepClone(obj[key]) : obj[key])
  9. );
  10. if (Array.isArray(obj)) {
  11. clone.length = obj.length;
  12. return Array.from(clone);
  13. }
  14. return clone;
  15. };
  16. export default deepClone