我想要创建MLM类型树结构。我有数组ARR及其所有子类,ARR数组也包含其中的所有子数组。
示例:
ARR['MainArr'] = aray('child1'=>'child1 val', 'child2'=>'child2 val');
ARR['child1'] = array('subchild1'=>'subchild1 val');
ARR['child2'] = array('...'=>'...');
ARR['subchild1'] = array('...'=>'...');等等..。
我想递归地循环所有这些数组,而不使用任何函数(如果可能的话)来获取和打印所有的子子程序,直到打印所有的子数组为止。
在下面的示例中,parsedAllSpurs数组包含所有的子子数组,就像这里的ARR数组一样。
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;
});
}发布于 2015-09-04 06:35:48
在嵌套循环https://en.wikipedia.org/wiki/Recursion上使用递归。创建一个级别的函数,并在每次找到嵌套结构时调用该函数。
function processStructure(data){
processData(data);
if(hasChildren(data)){
processStructure(data);
}
}
processStructure(initialData);希望这能有所帮助。
https://stackoverflow.com/questions/32390537
复制相似问题