日期:2014-05-16  浏览次数:20298 次

关于树形对象的深度的问题。
我这里有个树形对象

var i1={
id:1,
name:'root',
is:[{
id:'2',
name:'2'
},{
id:'3',
name:'3',
is:[{
id:'4',
name:'4',
is:[{
id:'6',
name:'6'
},{
id:'7',
name:'7'
}]
},{
id:'5',
name:'5',
is:[{
id:'8',
name:'8'
},{
id:'9',
name:'9'
}]

}]
}]

}




我想用一个方法fnGetFloor(i1)来取得这个树形对象的深度,这个函数该怎么写?

------解决方案--------------------

function fn(data){
if(typeof data.is!='undefined'){
for(var i in data.is){
data.is[i].deep = data.deep+1;

fn(data.is[i]);
}
}else if(data.deep>maxDeep){
maxDeep = data.deep;
}
}
i1.deep = 1;
var maxDeep = i1.deep;
fn(i1);
console.log(maxDeep);