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.obj
Like Tips Javascript?
Recommended snippets