编辑代码

const tree = [
    {
        level: 1,
        label: "产品",
        value: 1,
        children: [
            {
                level: 2,
                label: "外饰",
                value: 2,
                children: [
                    {
                        level: 3,
                        label: "车窗",
                        value: 3,
                    },
                    {
                        level: 3,
                        label: "车漆",
                        value: 4,
                    }
                ]
            },
            {
                level: 2,
                label: "内饰",
                value: 5,
                children: [
                    {
                        level: 3,
                        label: "地毯",
                        value: 6,
                    },
                    {
                        level: 3,
                        label: "方向盘",
                        value: 7,
                    }
                ]
            },
            {
                level: 2,
                label: "OTA",
                value: 8,
            },
            {
                level: 2,
                label: "其他",
                value: 9,
            }
        ]
    },
    {
        level: 1,
        label: "信息",
        value: 10,
        children: [
            {
                level: 2,
                label: "电话",
                value: 11,
                children: [
                    {
                        level: 3,
                        label: "手机",
                        value: 12,
                    },
                    {
                        level: 3,
                        label: "座机",
                        value: 13,
                    }
                ]
            },
            {
                level: 2,
                label: "姓名",
                value: 14,
            },
        ]
    }
]

const map = {}
const flattenTree = (subTree, prefix = "") => {
    subTree.forEach((item) => {
        const currentPath = prefix ? `${prefix}/${item.label}` : item.label;
        if (item.children) {
            flattenTree(item.children, currentPath);
        } else {
            map[currentPath] = item.value
        }
    });
};

flattenTree(tree, "")
console.log(map)