gpt4 book ai didi

javascript - 两个递归函数之间的区别

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

通过Id查找元素

function findElementRecursion (inputId, currentElement) {
if (currentElement.id == inputId) {
return true;
}
var numChildren = currentElement.children.length;
if (numChildren > 0) {
for (i=0; i<numChildren; i++) {
var currentChild = currentElement.children[i];
console.log(currentChild);
return findElementRecursion(inputId, currentChild);
}
}
return false;
}

有人能帮我调试这个递归函数吗?当它应该返回 true 时却返回 false。由于我没有看到任何错误消息,因此我很难找出问题所在。如果有人告诉我调试此类问题的步骤,将会很有帮助。

更新:问题是我只有在检查了 currentElement 的第一个子元素后才返回。我解决了这个问题,但该函数在应该返回 true 时仍然返回 false。

function findElementRecursion (inputId, currentElement) {
if (currentElement.id == inputId) {
return true;
}
var numChildren = currentElement.children.length;
if (numChildren > 0) {
for (i=0; i<numChildren; i++) {
var currentChild = currentElement.children[i];
if (findElementRecursion(inputId, currentChild)) {
return true;
}
}
}
return false;
}

在此页面上使用 findElementRecursion (mainbar, document) 从控制台尝试此操作,您将看到 false

最佳答案

function findElementRecursion (inputId, currentElement) {
var result = false;
if (currentElement.id == inputId) {
return true;
}
for (var i=0; i<currentElement.children.length; i++) {
var currentChild = currentElement.children[i];
console.log(currentChild);
result = findElementRecursion(inputId, currentChild);

// we can break here
if(result)
return true;
}
return false;
}

关于javascript - 两个递归函数之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20083578/

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