【发布时间】:2019-02-01 00:54:02
【问题描述】:
我想iterate all nodes of tree view
所以当我当时有大量节点时 堆栈溢出发生了,如何处理这种情况,因为我必须迭代所有节点。
var datas= getdatas();
function treenode() {
var item = datas.pop();
if (item) {
//some operation
treenode();
}
};
treenode();
【问题讨论】:
-
退出条件在哪里?
-
它已经存在 if( item )
-
这不是退出/基本条件...您需要在此处添加基本/退出条件
-
如果您所做的只是从数组中弹出,并且如果它不为空,那么您将再次从数组中弹出,那么递归是不合适的,您可以使用 for 循环来执行此操作。如果你得到一个空条目,只需循环 datas.length 并中断。
-
@ChrisCousins ,是的,如果它是一个简单的数组,但它是树节点结构中的树节点,我刚刚写下了整体场景而不是整个代码,因为它是一个大函数,我必须只用递归解决这个问题
标签: javascript recursion stack-overflow