js 遞歸查找屬性值 (根據某個屬性值查找另一個屬性值)


var defaultData = [{
text: '開發部門',
href: '#parent1',
tags: ['4'],
id:3003,
nodes: [
{
text: 'Child 1',
href: '#child1',
tags: ['2'],
id:3004,
nodes: [
{
text: 'Grandchild 1',
href: '#grandchild1',
tags: ['0'],
id:3005,
},
{
text: 'Grandchild 2',
href: '#grandchild2',
tags: ['0'],
id:3006,
}
]
},
{
text: 'Child 2',
href: '#child2',
tags: ['0'],
id:3007,
}
]
},
{
text: '產品部門',
href: '#parent2',
tags: ['0'],
id:3008,
nodes: [
{
text: '產品Child 1',
href: '#child1',
tags: ['2'],
id:3009,
nodes: [
{
text: '產品Grandchild 1',
href: '#grandchild1',
tags: ['0'],
id:30010,
}
]
},
{
text: '產品Child 2',
href: '#child2',
tags: ['0'],
id:30011,
}
]
},
{
text: '銷售部門',
href: '#parent3',
tags: ['0'],
id:30012,
},
{
text: '運營部門',
href: '#parent4',
tags: ['0'],
id:30013,
},
{
text: '設計部門',
href: '#parent5' ,
tags: ['0'],
id:30014,
}];
var tarText = "Grandchild 1";
function findTargetId(dataobj,targetText){
if(dataobj.text == targetText){
return dataobj.id;
}else{
if(dataobj.nodes!=null){
for(var i=0; i<dataobj.nodes.length; i++){
var flagId = findTargetId(dataobj.nodes[i],targetText);
if(flagId){
return flagId;
}
}
}
}
return false;
}
for(var i=0;i<defaultData.length;i++){
var flag = findTargetId(defaultData[i],tarText)
if(flag){
result = flag;
}

}
console.log(result)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM