【发布时间】:2017-11-02 08:22:58
【问题描述】:
我正在尝试使用 Javascript 编写递归函数,但显然我错过了一些东西,我无法让它在我想要的位置返回。 在下面的示例中,我希望在日志中看到 baz=18,但是 baz 是未定义的。
https://jsfiddle.net/n8fg1h3v/1/
有什么想法吗?
function foo(arr) {
if (arr[0]==7) {
return 18
} else {
arr = arr.slice(1,arr.length);
foo(arr);
}
}
var arr1 = [9,1,2,3,4,7,6];
var baz = foo(arr1);
console.log(baz)
【问题讨论】:
-
请注意,虽然您可以在任何地方使用 Javascript 进行重新分配 (
arr = ...),但这在递归算法中并不常见。将表达式作为参数传递 (foo(arr.slice(...)))
标签: javascript recursion functional-programming