首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用javascript数组创建MLM类型树结构

用javascript数组创建MLM类型树结构
EN

Stack Overflow用户
提问于 2015-09-04 05:11:59
回答 1查看 400关注 0票数 1

我想要创建MLM类型树结构。我有数组ARR及其所有子类,ARR数组也包含其中的所有子数组。

示例:

代码语言:javascript
复制
ARR['MainArr'] = aray('child1'=>'child1 val', 'child2'=>'child2 val');

ARR['child1'] = array('subchild1'=>'subchild1 val');

ARR['child2'] = array('...'=>'...');

ARR['subchild1'] = array('...'=>'...');

等等..。

我想递归地循环所有这些数组,而不使用任何函数(如果可能的话)来获取和打印所有的子子程序,直到打印所有的子数组为止。

在下面的示例中,parsedAllSpurs数组包含所有的子子数组,就像这里的ARR数组一样。

代码语言:javascript
复制
tmpHN = spurs.hostname;
while(typeof(parsedAllSpurs[tmpHN]) !== 'undefined'){
    if(typeof(parsedAllSpurs[tmpHN]) !== 'undefined'){
        $.each(parsedAllSpurs[tmpHN], function(k, allSpurs){
            tmpHN1 = allSpurs.hostname;
            log(tmpHN1);
            log(allSpurs);

            while(typeof(parsedAllSpurs[tmpHN1]) !== 'undefined'){
                if(typeof(parsedAllSpurs[tmpHN1]) !== 'undefined'){
                    $.each(parsedAllSpurs[tmpHN1], function(j, allSpurs1){
                        tmpHN2 = allSpurs1.hostname; 
                        //log(tmpHN2);
                        log(allSpurs1);

                        while(typeof(parsedAllSpurs[tmpHN2]) !== 'undefined'){
                            if(typeof(parsedAllSpurs[tmpHN2]) !== 'undefined'){
                                $.each(parsedAllSpurs[tmpHN2], function(l, allSpurs2){
                                    tmpHN2 = allSpurs2.hostname;     
                                    log(allSpurs2);

                                })

                            }
                        }

                        tmpHN1 = allSpurs1.hostname;
                    });                                                
                }
            }

            tmpHN = allSpurs.hostname;
        });
    }
EN

回答 1

Stack Overflow用户

发布于 2015-09-04 06:35:48

在嵌套循环https://en.wikipedia.org/wiki/Recursion上使用递归。创建一个级别的函数,并在每次找到嵌套结构时调用该函数。

代码语言:javascript
复制
function processStructure(data){
    processData(data);
    if(hasChildren(data)){
        processStructure(data);
    }
}
processStructure(initialData);

希望这能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32390537

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档