类似tree 数组降维

请问向这样的一组数据 如何用 递归或者简洁的方式降维成 下面这样,把他们某个值拼在一起。

[
    {
        "name": "测试类目1/12321/1",
        "parentId": "2/5/125",
        "tagType": "category/product/brand"
    },
    {
        "name": "测试类目1/12321/1",
        "parentId": "2/5/125",
        "tagType": "category/product/brand"
    },
    {
        "name": "测试类目1/12321/1",
        "parentId": "2/5/125",
        "tagType": "category/product/brand"
    },
]


[
    {
      "id": 5,
      "name": "测试类目1",
      "description": null,
      "parentId": 2,
      "sort": 4,
      "tagType": "category",
      "configTagList": [
        {
          "id": 6,
          "name": "测试产品线1",
          "description": null,
          "parentId": 5,
          "sort": 5,
          "tagType": "product",
          "configTagList": [
            {
              "id": 131,
              "name": "2",
              "description": null,
              "parentId": 6,
              "sort": 129,
              "tagType": "brand",
            },
            {
              "id": 132,
              "name": "3",
              "description": null,
              "parentId": 6,
              "sort": 130,
              "tagType": "brand",
            },
            {
              "id": 133,
              "name": "4",
              "description": null,
              "parentId": 6,
              "sort": 131,
              "tagType": "brand",
            },
            {
              "id": 134,
              "name": "5",
              "description": null,
              "parentId": 6,
              "sort": 132,
              "tagType": "brand",
            },
            {
              "id": 135,
              "name": "6",
              "description": null,
              "parentId": 6,
              "sort": 133,
              "tagType": "brand",
            },
            {
              "id": 136,
              "name": "78",
              "description": null,
              "parentId": 6,
              "sort": 134,
              "tagType": "brand",
            }
          ]
        },
        {
          "id": 125,
          "name": "12321",
          "description": null,
          "parentId": 5,
          "sort": 123,
          "tagType": "product",
          "configTagList": [
            {
              "id": 126,
              "name": "123213",
              "description": null,
              "parentId": 125,
              "sort": 124,
              "tagType": "brand",
              "configTagList": [
                {
                  "id": 137,
                  "name": "1",
                  "description": null,
                  "parentId": 126,
                  "sort": 135,
                  "tagType": "model",
                },
                {
                  "id": 138,
                  "name": "2",
                  "description": null,
                  "parentId": 126,
                  "sort": 136,
                  "tagType": "model",
                },
                {
                  "id": 139,
                  "name": "3",
                  "description": null,
                  "parentId": 126,
                  "sort": 137,
                  "tagType": "model",
                },
                {
                  "id": 140,
                  "name": "34",
                  "description": null,
                  "parentId": 126,
                  "sort": 138,
                  "tagType": "model",
                }
              ]
            },
            {
              "id": 127,
              "name": "32432",
              "description": null,
              "parentId": 125,
              "sort": 125,
              "tagType": "brand",
            },
            {
              "id": 128,
              "name": "12",
              "description": null,
              "parentId": 125,
              "sort": 126,
              "tagType": "brand",
            },
            {
              "id": 129,
              "name": "3",
              "description": null,
              "parentId": 125,
              "sort": 127,
              "tagType": "brand",
            },
            {
              "id": 130,
              "name": "1",
              "description": null,
              "parentId": 125,
              "sort": 128,
              "tagType": "brand",
            }
          ]
        }
      ]
    },
    {
      "id": 21,
      "name": "测试类目2",
      "description": null,
      "parentId": 2,
      "sort": 19,
      "tagType": "category",
      "configTagList": [
        {
          "id": 22,
          "name": "测试产品线1",
          "description": null,
          "parentId": 21,
          "sort": 20,
          "tagType": "product",
          "configTagList": [
            {
              "id": 23,
              "name": "测试品牌1",
              "description": null,
              "parentId": 22,
              "sort": 21,
              "tagType": "brand",
              "configTagList": [
                {
                  "id": 24,
                  "name": "测试型号1",
                  "description": null,
                  "parentId": 23,
                  "sort": 22,
                  "tagType": "model",
                }
              ]
            }
          ]
        }
      ]
    },
    {
      "id": 5,
      "name": "测试类目1",
      "description": null,
      "parentId": 2,
      "sort": 4,
      "tagType": "category",
      "configTagList": [
        {
          "id": 6,
          "name": "测试产品线1",
          "description": null,
          "parentId": 5,
          "sort": 5,
          "tagType": "product",
          "configTagList": [
            {
              "id": 131,
              "name": "2",
              "description": null,
              "parentId": 6,
              "sort": 129,
              "tagType": "brand",
            },
            {
              "id": 132,
              "name": "3",
              "description": null,
              "parentId": 6,
              "sort": 130,
              "tagType": "brand",
            },
            {
              "id": 133,
              "name": "4",
              "description": null,
              "parentId": 6,
              "sort": 131,
              "tagType": "brand",
            },
            {
              "id": 134,
              "name": "5",
              "description": null,
              "parentId": 6,
              "sort": 132,
              "tagType": "brand",
            },
            {
              "id": 135,
              "name": "6",
              "description": null,
              "parentId": 6,
              "sort": 133,
              "tagType": "brand",
            },
            {
              "id": 136,
              "name": "78",
              "description": null,
              "parentId": 6,
              "sort": 134,
              "tagType": "brand",
            }
          ]
        }
      ]
    },
    {
      "id": 21,
      "name": "测试类目2",
      "description": null,
      "parentId": 2,
      "sort": 19,
      "tagType": "category",
      "configTagList": [
        {
          "id": 22,
          "name": "测试产品线1",
          "description": null,
          "parentId": 21,
          "sort": 20,
          "tagType": "product",
          "configTagList": [
            {
              "id": 23,
              "name": "测试品牌1",
              "description": null,
              "parentId": 22,
              "sort": 21,
              "tagType": "brand",
              "configTagList": [
                {
                  "id": 24,
                  "name": "测试型号1",
                  "description": null,
                  "parentId": 23,
                  "sort": 22,
                  "tagType": "model",
                }
              ]
            }
          ]
        }
      ]
    }
  ]

递归循环。


 const newList: NewList[] = [];
  let label = ``;
  let value = ``;
  let tagType = ``;
  // let count = 0;
  const dataChange = (list: SETTINGS_TAGS_INVITE.Item[]) => {
    // count += 1;
    list.forEach((i) => {
      if (i.configTagList) {
        label = `${label}/${i.name}`;
        value = `${label}/${i.parentId}`;
        tagType = `${label}/${i.tagType}`;
        dataChange(i.configTagList);
      } else {
        label = `${label ? `${label}/` : ''}${i.name}`;
        value = `${label ? `${label}/` : ''}${i.parentId}`;
        tagType = `${label ? `${label}/` : ''}${i.tagType}`;
        newList.push({
          label,
          value,
          tagType,
        });
        // count = 0;
      }

    });
    return newList;
  };

请大佬看看 应该怎么写呢。 这样写不对


using System;
using System.Collections.Generic;
class Program
{
    public static void Main(string[] args)
    {
        List<Data> datas = new List<Data>();
        datas.Add(new Data()
        {
            id = "1",
            name = "1",
            tagType = "1",
            cdata = new List<Data>()
                {
                    new Data() {
                        id = "2",
                        name = "2",
                        tagType = "2",
                        cdata = new List<Data>()
                        {
                            new Data() {
                                id = "3",
                                name = "3",
                                tagType = "3",
                                cdata = new List<Data>()
                                {


                                }

                            }
                        }

                    }
                }
        });
        var datas2 = Get(datas, new ReturnData());
        Console.Write(datas2);
    }

    public static List<ReturnData> Get(List<Data> datas, ReturnData data)
    {
        List<ReturnData> datas2 = new List<ReturnData>();
        foreach (var item in datas)
        {
            data.id += "/" + item.id;
            data.name += "/" + item.name;
            data.tagType += "/" + item.tagType;

            Get(item.cdata, data);

            datas2.Add(data);
        }
        return datas2;
    }

    public class Data
    {
        public string id { get; set; }
        public string name { get; set; }
        public string tagType { get; set; }
        public List<Data> cdata { get; set; }
    }


    public class ReturnData
    {
        public string id { get; set; }
        public string name { get; set; }
        public string tagType { get; set; }
    }
}

img