深拷贝的循环引用问题
解析
ts
function deepClone(value) {
if (typeof value !== 'object' || value === null) {
return value;
}
const map = new Map();
function _deepClone(value) {
const result = Array.isArray(value) ? [] : {};
if (cache.has(value)) {
return cache.get(value);
}
cache.set(value, result);
for (const key in value) {
result[key] = _deepClone(value[key]);
}
return result;
}
return _deepClone(value);
}