2021-10-16 Element UI Cascader不限层级,根据最后节点值获取完整值数组

<script>

    var arr = [{

        id: 1,

        children: [{

            id: 11,

            children: [{

                id: 111

            }]

        }, {

            id: 12,

            children: [{

                id: 121

            }]

        }, {

            id: 13,

            children: [{

                id: 131

            }]

        }]

    }]

    function getLine(list, id) {

        var map = new Map();

        var tree = function(list, id, parentId) {

            if(!list || !list.length) {

                return null;

            }

            for(let item of list) {

                map.set(item.id, parentId);

                if(item.id === id) {

                    return id;

                }

                const _ID = tree(item.children, id, item.id);

                if(_ID || _ID === 0) {

                    return _ID;

                }

            }

            return null;

        }

        let o = tree(list, id, null);

        var arr = [o];

        while(map.get(o)) {

            arr.push(map.get(o));

            o = map.get(o);

        }

        return arr;

    }

    const arr2 = getLine(arr,131);

    console.log(arr2);

</script>

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容