Creates a deep clone of an object. Đọc thêm Deep Clone Object
Sử dụng phương pháp đệ quy. Check nếu object khác null và, nếu là null thì return null. Sử dụng Object.assign() và cách tạo một object rỗng ({}) để tạo một shallow object từ object gốc. Sử dụng Object.keys() và Array.prototype.forEach().
const deepClone = obj => {
if (obj === null) return null;
let clone = Object.assign({}, obj);
Object.keys(clone).forEach(
key => (clone[key] = typeof obj[key] === 'object' ? deepClone(obj[key]) : obj[key])
);
return Array.isArray(obj) && obj.length
? (clone.length = obj.length) && Array.from(clone)
: Array.isArray(obj)
? Array.from(obj)
: clone;
};EXAMPLES
const a = { foo: 'bar', obj: { a: 1, b: 2 } };
const b = deepClone(a); // a !== b, a.obj !== b.objLike Tips Javascript?
Recommended snippets

