javaScript -- Js实现树形搜索

题目还是朋友给我的,实现搜索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--
    原文作者:谢秀岳
    原文地址: https://www.jianshu.com/p/f5d5cf50f7d8
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞