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

时间:2013-12-26 19:12:54

标签: javascript algorithm graph

所以,我必须在非有向图中找到所有可能的周期,它们在选定的顶点开始(和结束)。

我在js中编写了一个算法:jsfiddle

但面对非常非常奇怪的问题:在我的递归函数中,参数以某种方式改变了自己!但我甚至不碰它!请帮助我,我已经忍受了16个小时的这个错误! :(

我认为此参数已被此代码更改:

cycle.push(vertex);

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

1 个答案:

答案 0 :(得分:2)

问题在于:

var newCycle = cycle;

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

var newCycle = cycle.slice(0);