javascript - 递归函数中的参数会以某种方式改变自身

标签 javascript algorithm graph

所以,我必须找到非有向图中所有可能的循环,这些循环在选定的顶点开始(和结束)。

我用js写了一个算法:jsfiddle

但是遇到了非常非常奇怪的问题:在我的递归函数中,参数以某种方式改变了自己!但我什至不碰它!请帮助我,我已经被这个错误折磨了 16 个小时了! :(

我认为这个参数被这段代码改变了:

cycle.push(vertex);

但不应该!因为在他的可见区域,全局循环变量必须被局部循环变量覆盖!

最佳答案

问题是这样的:

var newCycle = cycle;

你不是克隆它,你只是给同一个对象一个不同的名称。尝试:

var newCycle = cycle.slice(0);

关于javascript - 递归函数中的参数会以某种方式改变自身,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20789952/

相关文章:

javascript - 不可转换的类型;无法将 'android.view.View' 转换为 int'

c# - 帮助实现这个节拍检测算法?

algorithm - 是否有一个例子可以在 Omega(q log n) 中运行 Union & find algorithm without union by rank?

c - C中弹出中间元素

arrays - 如何从二维数组构建图形?

algorithm - 如何在图表中保留社区信息

android - aChartEngine:获取图形区域上任意点的坐标

javascript - chrome.extension.getBackgroundPage() 函数示例

javascript - onmouseover 工具提示未正确显示

javascript - Angular UI路由器条件自动滚动