2025-08-23 JavaScript递归算法中的数组引用陷阱:理解深浅拷贝在集合生成中的应用 JavaScript递归算法中的数组引用陷阱:理解深浅拷贝在集合生成中的应用 一、递归中的幽灵:为何结果总被篡改?最近在实现一个「全排列生成」算法时,我遭遇了诡异的BUG:当递归深度达到第三层时,之前生成的结果数组竟被莫名修改。经过反复调试,终于发现是JavaScript的数组引用机制在作祟。javascript function permute(nums) { const res = []; const backtrack = (path) => { if (path.length === nums.length) { res.push(path); // 这里埋下了祸根 return; } for (let num of nums) { if (!path.includes(num)) { path.push(num); backtrack(path); path.pop(); } } }; backtrack([]); return res; }执行这段代码会发现,最终res数组里的所有元素都指向同... 2025年08月23日 2 阅读 0 评论