使用javascript数组创建MLM类型树结构
我想创建传销类型树结构。我有一个数组ARR及其所有子数组,同样ARR数组包含其中存在的所有子数组 示例:使用javascript数组创建MLM类型树结构,javascript,php,arrays,recursion,iteration,Javascript,Php,Arrays,Recursion,Iteration,我想创建传销类型树结构。我有一个数组ARR及其所有子数组,同样ARR数组包含其中存在的所有子数组 示例: ARR['MainArr'] = aray('child1'=>'child1 val', 'child2'=>'child2 val'); ARR['child1'] = array('subchild1'=>'subchild1 val'); ARR['child2'] = array('...'=>'...'); ARR['subchild1'] = ar
ARR['MainArr'] = aray('child1'=>'child1 val', 'child2'=>'child2 val');
ARR['child1'] = array('subchild1'=>'subchild1 val');
ARR['child2'] = array('...'=>'...');
ARR['subchild1'] = array('...'=>'...');
等等
我希望递归地循环所有这些数组,而不使用任何函数(如果可能的话)来获取和打印它的所有子孩子,直到打印所有孩子
在下面的示例中,parsedAllSpurs
array包含所有的子元素,就像这里的ARR
array一样
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;
});
}
在嵌套循环上使用递归。 创建用于一个级别的函数,并在每次找到嵌套结构时调用此函数
function processStructure(data){
processData(data);
if(hasChildren(data)){
processStructure(data);
}
}
processStructure(initialData);
希望这有帮助。在嵌套循环上使用递归。 创建用于一个级别的函数,并在每次找到嵌套结构时调用此函数
function processStructure(data){
processData(data);
if(hasChildren(data)){
processStructure(data);
}
}
processStructure(initialData);
希望这有帮助。你的代码在函数中吗?我不太了解你的
parsedAllSpurs
JavaScript对象的结构。你能在你的代码中包含一个这样的例子吗?比如var parsedAllSpurs=
。那么,spurs.hostname
从何而来?什么是spurs
变量?下面是parsedAllSuprs的结构,但它的PHP数组后来被转换成json对象array('mibHRawles001'=>array(0=>array('hostname'=>'MIBHVENKESR001''media_type'=>Microwave')1=>array('hostname'=>'ABCDEF000''介质类型'=>'Microwave')2=>阵列('hostname'=>'MIBHSLSRESR001''介质类型'=>'Microwave'))
My code不在函数@aldrin27I中,我看不到该数组中任何元素之间的连接。能否提供一个更完整的数组示例(请将其包含在您的问题中,而不是作为注释)?如果你想要一个JavaScript解决方案,我想最好把这个例子写成一个JavaScript对象。或者你想要一个PHP解决方案吗?你的代码在函数中吗?我真的不知道你的parsedAllSpurs
JavaScript对象的结构。你能在你的代码中包含一个这样的例子吗?比如var parsedAllSpurs=
。那么spurs.hostname
从何而来?spurs变量是什么?下面是parsedAllSuprs的结构,但它的PHP数组后来被转换成json对象数组('mibhrawlessr001'=>array(0=>array('hostname'=>'MIBHVENKESR001''媒体类型'=>'Microwave')1=>阵列('hostname'=>'ABCDEF000''媒体类型'=>'Microwave')2=>阵列('hostname'=>'MIBHSLSRESR001''媒体类型'=>'Microwave'))
My code不在函数@aldrin27I中,我看不到该数组中任何元素之间的连接。能否提供一个更完整的数组示例(请将其包含在您的问题中,而不是作为注释)?如果你想要一个JavaScript解决方案,我想最好把这个例子写成一个JavaScript对象。或者你想要一个PHP解决方案吗?我们不能不使用函数吗,就像我们可以使用while或foreach一样?你的例子中的每一个都创建匿名函数,一个函数有什么问题?你的代码包含复制粘贴,什么t如果你还有一个级别?你会再次复制它吗?如果你需要添加数据处理之后呢?你会将它写入每个函数吗?我们不能在不使用函数的情况下这样做吗,就像我们可以使用while或foreach一样?在你的示例中,每个函数都创建匿名函数,一个函数有什么问题吗?你的代码包含复制粘贴,如果您还有一个级别呢?您将再次复制它?如果在您需要添加数据处理之后呢?您将把它写入每个函数?