递归复制:退出条件与循环引用 | 星雨笔录
理解递归复制边界与循环引用风险。
核心: 递归处理嵌套结构要有终止条件;有循环引用的数据不能无限向下遍历。
最小示例:
function countNodes(node, seen = new WeakSet()) {
if (!node || typeof node !== 'object' || seen.has(node)) return 0;
seen.add(node);
return 1 + Object.values(node).reduce((n, x) => n + countNodes(x, seen), 0);
}
学完能做: 理解递归复制边界与循环引用风险。