js实现简单的广度优先搜索
var data = [{
id:1,
label: '一级 1',
children: [{
id:4,
label: '二级 1-1',
children: [{
id:9,
label: '三级 1-1-1',
children:[]
}]
}]
}, {
id:2,
label: '一级 2',
children: [{
id:5,
label: '二级 2-1',
children: [{
id:10,
label: '三级 2-1-1',
children:[]
}]
}, {
id:6,
label: '二级 2-2',
children: [{
id:11,
label: '三级 2-2-1',
children:[]
}]
}]
}, {
id:3,
label: '一级 3',
children: [{
id:7,
label: '二级 3-1',
children: [{
id:12,
label: '三级 3-1-1',
children:[]
}]
}, {
id:8,
label: '二级 3-2',
children: [{
id:13,
label: '三级 3-2-1',
children:[]
}]
}]
}];
function searchTree(data,id) {
var i;
for(i=0;i<data.length;i++){
if(data[i].id == id){
return data[i];
}
}
var childRes = [];
for(i=0;i<data.length;i++){
childRes[i] = searchTree(data[i].children,id);
if(childRes[i] != 0){
return childRes[i];
}
}
return 0;
}
(function () {
var get = searchTree(data,11);
console.log(get.label);
})();