树形结构点击选中后生成新的选中的树形结构问题

发布于 2022-09-12 23:36:07 字数 5558 浏览 11 评论 0

image.png

test: [
            {
                id: 1,
                domain: '一级域1',
                children: [
                    {
                        id: 11,
                        domain: '二级域11',
                        parentid: 1,
                        children: [
                            {
                                id: 111,
                                domain: '三级域1121',
                                parentid: 11,
                                children: [{ id: 1111, parentid: 111,domain: '四级域111' }],
                            },
                            {
                                id: 111,
                                domain: '三级域1311',
                                parentid: 11,
                                children: [{ id: 1111,parentid: 111, domain: '四级域111' }],
                            },
                            {
                                id: 111,
                                domain: '三级域1411',
                                parentid: 11,
                                children: [{ id: 1111,parentid: 111, domain: '四级域111' }],
                            },
                            {
                                id: 111,
                                domain: '三级域1511',
                                parentid: 11,
                                children: [{ id: 1111, parentid: 111,domain: '四级域111' }],
                            },
                            {
                                id: 111,
                                domain: '三级域1611',
                                parentid: 11,
                                children: [{ id: 1111, parentid: 111,domain: '四级域111' }],
                            },
                            {
                                id: 111,
                                domain: '三级域1711',
                                parentid: 11,
                                children: [{ id: 1111,parentid: 111, domain: '四级域111' }],
                            },
                            {
                                id: 111,
                                domain: '三级域1811',
                                parentid: 11,
                                children: [{ id: 1111, parentid: 111,domain: '四级域111' }],
                            },
                            {
                                id: 111,
                                domain: '三级域1911',
                                parentid: 11,
                                children: [{ id: 1111,parentid: 111, domain: '四级域111' }],
                            },
                            {
                                id: 111,
                                domain: '三级域1110',
                                parentid: 11,
                                children: [{ id: 1111,parentid: 111, domain: '四级域111' }],
                            },
                            {
                                id: 111,
                                domain: '三级域11111',
                                parentid: 11,
                                children: [{ id: 1111,parentid: 111, domain: '四级域111' }],
                            },
                        ],
                    },
                    {
                        id: 12,
                        domain: '二级域12',
                        children: [
                            {
                                id: 112,
              domain: '三级域112',
              parentid: 12,
                                children: [{ id: 1111, parentid: 112,domain: '四级域1111' }],
                            },
                        ],
                    },
                ],
            },
            {
                id: 2,
                domain: '一级域2',
                children: [
                    {
                        id: 21,
                        domain: '二级域21',
                        parentid: 2,
                        children: [{ id: 211,parentid: 21, domain: '三级域211' }],
                    },
                    {
                        id: 22,
                        domain: '二级域22',
                        parentid: 2,
                        children: [{ id: 212, parentid: 21,domain: '三级域212' }],
                    },
                ],
            },
            {
                id: 3,
                domain: '一级域3',
                children: [
                    {
                        id: 31,
                        domain: '二级域31',
                        parentid: 3,
                        children: [{ id: 311,parentid: 31, domain: '三级域311' }],
                    },
                    {
                        id: 32,
                        domain: '二级域32',
                        parentid: 3,
                        children: [{ id: 312,parentid: 31, domain: '三级域312' }],
                    },
                ],
            },
            {
                id: 4,
                domain: '一级域4',
                children: [
                    {
                        id: 41,
                        parentid: 4,
                        domain: '二级域41',
                    },
                    {
                        id: 42,
                        parentid: 4,

                        domain: '二级域42',
                    },
                ],
            },
            {
                id: 5,
                domain: '一级域5',
            },
        ]

一个级联多选组件,想实现选中三级或四级之后 生成一个新的树形结构,这个数据只有选中的域

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

一绘本一梦想 2022-09-19 23:36:07

var test = [

        {
            id: 1,
            domain: '一级域1',
            children: [
                {
                    id: 11,
                    domain: '二级域11',
                    parentid: 1,
                    children: [
                        {
                            id: 111,
                            domain: '三级域1121',
                            parentid: 11,
                            children: [{ id: 1111, parentid: 111, domain: '四级域111' }],
                        },
                        {
                            id: 111,
                            domain: '三级域1311',
                            parentid: 11,
                            children: [{ id: 1111, parentid: 111, domain: '四级域111' }],
                        },
                        {
                            id: 111,
                            domain: '三级域1411',
                            parentid: 11,
                            children: [{ id: 1111, parentid: 111, domain: '四级域111' }],
                        },
                        {
                            id: 111,
                            domain: '三级域1511',
                            parentid: 11,
                            children: [{ id: 1111, parentid: 111, domain: '四级域111' }],
                        },
                        {
                            id: 111,
                            domain: '三级域1611',
                            parentid: 11,
                            children: [{ id: 1111, parentid: 111, domain: '四级域111' }],
                        },
                        {
                            id: 111,
                            domain: '三级域1711',
                            parentid: 11,
                            children: [{ id: 1111, parentid: 111, domain: '四级域111' }],
                        },
                        {
                            id: 111,
                            domain: '三级域1811',
                            parentid: 11,
                            children: [{ id: 1111, parentid: 111, domain: '四级域111' }],
                        },
                        {
                            id: 111,
                            domain: '三级域1911',
                            parentid: 11,
                            children: [{ id: 1111, parentid: 111, domain: '四级域111' }],
                        },
                        {
                            id: 111,
                            domain: '三级域1110',
                            parentid: 11,
                            children: [{ id: 1111, parentid: 111, domain: '四级域111' }],
                        },
                        {
                            id: 111,
                            domain: '三级域11111',
                            parentid: 11,
                            children: [{ id: 1111, parentid: 111, domain: '四级域111' }],
                        },
                    ],
                },
                {
                    id: 12,
                    domain: '二级域12',
                    children: [
                        {
                            id: 112,
                            domain: '三级域112',
                            parentid: 12,
                            children: [{ id: 1111, parentid: 112, domain: '四级域1111' }],
                        },
                    ],
                },
            ],
        },
        {
            id: 2,
            domain: '一级域2',
            children: [
                {
                    id: 21,
                    domain: '二级域21',
                    parentid: 2,
                    children: [{ id: 211, parentid: 21, domain: '三级域211' }],
                },
                {
                    id: 22,
                    domain: '二级域22',
                    parentid: 2,
                    children: [{ id: 212, parentid: 21, domain: '三级域212' }],
                },
            ],
        },
        {
            id: 3,
            domain: '一级域3',
            children: [
                {
                    id: 31,
                    domain: '二级域31',
                    parentid: 3,
                    children: [{ id: 311, parentid: 31, domain: '三级域311' }],
                },
                {
                    id: 32,
                    domain: '二级域32',
                    parentid: 3,
                    children: [{ id: 312, parentid: 31, domain: '三级域312' }],
                },
            ],
        },
        {
            id: 4,
            domain: '一级域4',
            children: [
                {
                    id: 41,
                    parentid: 4,
                    domain: '二级域41',
                },
                {
                    id: 42,
                    parentid: 4,

                    domain: '二级域42',
                },
            ],
        },
        {
            id: 5,
            domain: '一级域5',
        },
    ]
    var targetVal = [1, 11, 112]
    function resetData(arr, index = 0,pid=0) {
        var item = getTarget(test, arr[index])
        var temp = JSON.parse(JSON.stringify(item))
        temp.parentid=pid
        if (index < arr.length - 1) {
            temp.children = resetData(arr, ++index,temp.id)
        } else {
            delete temp.children
        }
        return temp

    }
    function getTarget(tree, id) {
        for (var i = 0; i < tree.length; i++) {
            if (tree[i].id === id) {
                return tree[i]
            } else {
                if (tree[i].children) {
                    var target = getTarget(tree[i].children, id)
                    if (target) {
                        return target
                    }
                }
            }
        }
    }
    console.log(resetData(targetVal))
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文