use*_*401 4 javascript php algorithm recursion
我正在帮助某人完成他的学校作业 - 我们正在尝试编写递归函数(如果重要的话 - 使用 PHP 或 JavaScript)。
我非常了解递归原理,但我还没有从“学术”的角度写过任何这些原理。
使用全局变量来存储结果是一种好习惯,例如:
var results = [];
var rec = function(a) {
...
if (match)
results.push(someValue);
}
Run Code Online (Sandbox Code Playgroud)
或者我应该使用 return 将所有这些结果收集在一起(这会困难得多)?
尽可能少地使用全局变量是一种很好的做法,最好不使用1。
为了避免递归中需要全局变量,您可以使用使用闭包的内部函数:
var rec = function(a) {
var someValue = [];
function dorec() {
// stuff happens
if (match)
results.push(someValue);
}
}
dorec();
}
Run Code Online (Sandbox Code Playgroud)
1个 道格拉斯·克罗克福德状态
所有变量都应该在使用前声明。JavaScript 不需要这样做,但这样做会使程序更易于阅读,并且更容易检测可能成为隐含全局变量的未声明变量。永远不应该使用隐含的全局变量。应尽量减少使用全局变量。