[英]Create MLM type tree structure with javascript array
我想創建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;
});
}
在嵌套循環https://en.wikipedia.org/wiki/Recursion上使用遞歸代替。 創建將其用作一級功能的函數,並在每次發現嵌套結構時調用此函數。
function processStructure(data){
processData(data);
if(hasChildren(data)){
processStructure(data);
}
}
processStructure(initialData);
希望這可以幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.