javaScript -- Js实现树形搜索
2017-07-13 本文已影响361人
反者道之动001
题目还是朋友给我的,实现搜索Titi,展示所有Title,并递归展示所有父级的Title
嗯,就这么简单,我写了一个小时(一开始我以为是id查找,后来写好了,朋友说要title,,,遇到这个点搞不清楚状况了,这什么鬼需求。。。后来,沟通很久后,内容就是我上面描述的那样的,一时间我觉得我的描述能力还是不错的)
思考线
上代码:
var obj = [
{title: 'title', id: 'box', pid: 'main'},
{title: 'title1', id: 'a', pid: 'box'},
{title: 'title2', id: 'b', pid: 'a'},
{title: 'title3', id: 'c', pid: 'b'},
{title: 'title5', id: 'e', pid: 'd'},
{title: 'title19', id: 'gg', pid: 'p'},
{title: 'title19', id: 'ggf', pid: 'pd'}
]
function fun(title){
function push_data(a){
arr.push(a.title)
search(a.pid)
}
var arr = []
,result = void 0
,dom = obj
// title 解析
,titleArr = []
,id = void 0
/**
* Title字符 解析
*/
;(function(){
dom.forEach(function(e){
if(e.title == title){
titleArr.push(e)
}
})
})()
titleArr.forEach(function(e){
search(e.id)
})
/**
* 向上搜索
*/
function search(id){
if(!id)return false
dom.forEach(function(e){
if(e.id == id){
push_data(e)
}
})
}
return arr.length === 0 ? 0 : arr
}
console.log(fun('title2'))
```
O k
--END--