gpt4 book ai didi

javascript - 我的 JavaScript 搜索递归循环出了什么问题?

转载 作者:行者123 更新时间:2023-11-28 20:20:45 25 4
gpt4 key购买 nike

我似乎无法弄清楚为什么我的递归搜索不会递归运行。

你看出什么问题了吗?我的 haystack[i] 是否放在错误的位置?因为我没有看到它。我尝试过查看该网站上的示例,但我无法弄清楚如此简单的事情。

search = function(needle, haystack) {

len = haystack.length;
for (var i = 0; i < len; i++)
{
if (typeof haystack[i] == 'object') {
search(needle, haystack[i])
} else {
if (needle == haystack[i]) {
console.log('found');
return;
}
console.log('value: ' + haystack[i])
}
}
}

var test = [[1], [2], [3,4], [5,6]]
search(4, test)

或者查看 fiddle @ http://jsfiddle.net/aniyishay/TBMmK/ (打开控制台)

最佳答案

您在len前面缺少var,它应该是var len = haystack.length;,否则它被视为全局变量。

当 haystack = [[1], [2], [3,4], [5,6]] 时,len = 4,但再次调用 search(4, [1])然后分配len = 1,然后当循环返回len = 1的值而不是原来的4,因为它是一个全局变量。现在 i =2 且 len = 1,因此循环存在

关于javascript - 我的 JavaScript 搜索递归循环出了什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18371020/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com