美文网首页javaScript
javaScript -- Js实现树形搜索

javaScript -- Js实现树形搜索

作者: 反者道之动001 | 来源:发表于2017-07-13 00:17 被阅读361次

    题目还是朋友给我的,实现搜索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--

    相关文章

      网友评论

        本文标题:javaScript -- Js实现树形搜索

        本文链接:https://www.haomeiwen.com/subject/qcbihxtx.html