JavaScript 中的递归函数
也许是一个微不足道的问题,我不知道为什么这个函数在执行 else 语句时会退出 for 循环。 我需要这个函数来获取 xml 文档。
function xmlToArray(element){
childs= element.childNodes;
if(childs.length != 1){
for(var i=0;i<childs.length;i++){
if(childs[i].hasChildNodes()){
xmlToArray(childs[i]);
}
alert("exit from if");
}//end for
alert("exit from for");
}//end if
else{
alert("do something with element");
}
alert("end of func");
}
Maybe is a trivial problem, i don't know why this function exit from for cycle when it goes on else statement.
I need this function to fetch an xml document.
function xmlToArray(element){
childs= element.childNodes;
if(childs.length != 1){
for(var i=0;i<childs.length;i++){
if(childs[i].hasChildNodes()){
xmlToArray(childs[i]);
}
alert("exit from if");
}//end for
alert("exit from for");
}//end if
else{
alert("do something with element");
}
alert("end of func");
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
由于
childs
不是局部变量,因此xmlToArray
的所有调用都作用于相同的数据。试试这个:
使用
var
在当前作用域中声明该变量。Since
childs
is not a local variable, all calls ofxmlToArray
work on the same data.Try this:
Using
var
declares that variable in the current scope.