有个数据结构如下
var obj={
items: [
{id:1,menu: {items:[{id: 2},{id: 3}]}},
{id:4,menu: {items:[{id: 5},{id: 6}]}}
]};
items下面有很多元素,都有id属性,和menu属性,menu下面的元素又是items
想给一个id可以获得任意items节点下的元素。function get(obj,id)
{
if(obj)
{
for(var i in obj['items'])
{
if(obj['items'][i]['id']==id)
{
return obj['items'][i];
}else{
return get(obj['items'][i]['menu'],id);
}
}
}else{
return false;
}
}
var a=(get(obj,2));
alert(a.id); //2
var b=(get(obj,3));
alert(b.id); //undefined写了个函数但是有问题,id为2时可以获得元素,为其他值就不行了,望赐教。thanks
var obj={
items: [
{id:1,menu: {items:[{id: 2},{id: 3}]}},
{id:4,menu: {items:[{id: 5},{id: 6}]}}
]};
items下面有很多元素,都有id属性,和menu属性,menu下面的元素又是items
想给一个id可以获得任意items节点下的元素。function get(obj,id)
{
if(obj)
{
for(var i in obj['items'])
{
if(obj['items'][i]['id']==id)
{
return obj['items'][i];
}else{
return get(obj['items'][i]['menu'],id);
}
}
}else{
return false;
}
}
var a=(get(obj,2));
alert(a.id); //2
var b=(get(obj,3));
alert(b.id); //undefined写了个函数但是有问题,id为2时可以获得元素,为其他值就不行了,望赐教。thanks
if(obj['items'][i]['id']==id)
{
return obj['items'][i];
}else{
return get(obj['items'][i]['menu'],id);
}
把后面的东西都丢掉了
这里的i有可能是属性名称,有可能是数字
function get(obj,id){
if(obj){
for(var i in obj['items']){
if(obj['items'][i]['id']==id){
return obj['items'][i];
}else{
var tmp_result = get(obj['items'][i]['menu'],id);
if(tmp_result){
return tmp_result;
}
}
}
}
return false;
}