调用递归函数并保持变量本地
Call recursive function and keep variable local
我尝试创建一个递归函数,但是在循环之前for(){}
一个重要的变量(其他变量(被递归调用所取代。我想要变量局部(私有,仅适用于当前函数,不被递归调用覆盖(...我尝试了很多东西...知道吗?
function parseChilds( elements, desired, array ){
if( !isArray(elements) ){
if( elements instanceof NodeList ){
elements = objectToArray(elements);
}
else {
elements = [elements];
};
};
for( var el = 0; el < elements.length; el++ ){
console.log("EL", elements[el], desired);
if( elements[el].tagName.toLowerCase() === desired.tag[0] && desired.tag.length === 1 ){
array.push(elements[el]);
};
if( elements[el].nodeType === 1 ){
var childrens = elements[el].children;
if( childrens.length > 0 && desired.tag.length > 1 ){
desired.tag = arrayRemoveFirst(desired.tag);
for( var child = 0; child < childrens.length; child++ ){
if( childrens[child].nodeType === 1 ){
parseChilds(childrens[child], desired, array);
};
};
};
};
};
};
谢谢,J.
编辑:desired.tag
被 el = 1 在 for 循环中的递归调用覆盖...
虽然我并不真正理解你试图用你的代码做什么,但只要你想有一个"局部的,私有的"变量,它在所有函数调用中"保持不变",你可以独立于递归来更改它,我认为你需要一个"静态"变量。 看看这篇文章,它可以帮助你:
如何在 Javascript 中声明静态变量
相关文章:
- 递归函数中断
- 将jQuery对象传递到setTimeout递归函数中
- 对象与递归函数的比较
- 循环内部的递归函数未按预期工作
- 递归函数返回不正确
- 递归函数编程困境
- 给定一个带有数字的数组,我如何编写一个递归函数,当 2 个元素加起来为一个目标时,它会在数组中查找索引
- 返回不会退出 javascript 中的递归函数
- jquery递归函数转换为非递归函数
- AngularJS,promise带有递归函数
- 如何停止此递归函数
- jQuery如何在递归函数中使变量按值递增
- 使用不同的变量调用递归函数
- 调用递归函数并保持变量本地
- 如何在维护局部变量历史的同时创建递归函数
- Javascript:can't在递归函数调用中重新分配变量
- Javascript:在递归函数中初始化变量一次(如静态变量)
- Javascript通过递归函数传递变量
- 如何显示在递归函数中添加了哪些变量
- 不能在递归函数中返回变量