Node.js怎么整合这样的数据发给前端

新手上路,请多包涵
[
    {
        "regionId": "A1",
        "regionName": "栖霞区",
        "subRegionId": "A1.1",
        "subRegionName": "某街道9"
    },
    {
        "regionId": "A1",
        "regionName": "栖霞区",
        "subRegionId": "A1.2",
        "subRegionName": "某街道10"
    },
    {
        "regionId": "A2",
        "regionName": "浦口区",
        "subRegionId": "A2.1",
        "subRegionName": "某街道5"
    },
    {
        "regionId": "A3",
        "regionName": "六合区",
        "subRegionId": "A3.1",
        "subRegionName": "某街道6"
    },
    {
        "regionId": "A3",
        "regionName": "六合区",
        "subRegionId": "A3.2",
        "subRegionName": "某街道7"
    },
    {
        "regionId": "A3",
        "regionName": "六合区",
        "subRegionId": "A3.3",
        "subRegionName": "某街道8"
    },
    {
        "regionId": "A4",
        "regionName": "鼓楼区",
        "subRegionId": "A4.1",
        "subRegionName": "某街道3"
    },
    {
        "regionId": "A4",
        "regionName": "鼓楼区",
        "subRegionId": "A4.2",
        "subRegionName": "某街道4"
    },
    {
        "regionId": "A5",
        "regionName": "建邺区",
        "subRegionId": "A5.1",
        "subRegionName": "某街道1"
    },
    {
        "regionId": "A5",
        "regionName": "建邺区",
        "subRegionId": "A5.2",
        "subRegionName": "某街道2"
    },
    {
        "regionId": "A6",
        "regionName": "雨花台区",
        "subRegionId": "A6.1",
        "subRegionName": "某街道11"
    }
]
data: [
        //树状图数据
        {
          label: "总区域",
          children: [
            {
              label: "江宁",
              children: [
                {
                  label: "方山"
                }
              ]
            },
            {
              label: "秦淮"
            },
            {
              label: "雨花"
            },
            {
              label: "鼓楼",
              children: [
                {
                  label: "鼓楼医院街道"
                },
                {
                  label: "口腔医院街道"
                }
              ]
            }
          ]
        }
      ]

怎么把上面的数据结构去重整合成下面的数据结构?前端是一个element的联级选择器

阅读 1.4k
1 个回答

直接复制粘贴便可看到效果,我添加了keyvalue,element是要用到这个属性的

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <meta http-equiv="X-UA-Compatible" content="ie=edge" />
        <title>Example</title>
    </head>
    <body>
        <script>
            var data = [
                {
                    regionId: "A1",
                    regionName: "栖霞区",
                    subRegionId: "A1.1",
                    subRegionName: "某街道9"
                },
                {
                    regionId: "A1",
                    regionName: "栖霞区",
                    subRegionId: "A1.2",
                    subRegionName: "某街道10"
                },
                {
                    regionId: "A2",
                    regionName: "浦口区",
                    subRegionId: "A2.1",
                    subRegionName: "某街道5"
                },
                {
                    regionId: "A3",
                    regionName: "六合区",
                    subRegionId: "A3.1",
                    subRegionName: "某街道6"
                },
                {
                    regionId: "A3",
                    regionName: "六合区",
                    subRegionId: "A3.2",
                    subRegionName: "某街道7"
                },
                {
                    regionId: "A3",
                    regionName: "六合区",
                    subRegionId: "A3.3",
                    subRegionName: "某街道8"
                },
                {
                    regionId: "A4",
                    regionName: "鼓楼区",
                    subRegionId: "A4.1",
                    subRegionName: "某街道3"
                },
                {
                    regionId: "A4",
                    regionName: "鼓楼区",
                    subRegionId: "A4.2",
                    subRegionName: "某街道4"
                },
                {
                    regionId: "A5",
                    regionName: "建邺区",
                    subRegionId: "A5.1",
                    subRegionName: "某街道1"
                },
                {
                    regionId: "A5",
                    regionName: "建邺区",
                    subRegionId: "A5.2",
                    subRegionName: "某街道2"
                },
                {
                    regionId: "A6",
                    regionName: "雨花台区",
                    subRegionId: "A6.1",
                    subRegionName: "某街道11"
                }
            ];
            var obj = {};
            data.map(item => {
                if (obj[item.regionId]) {
                    obj[item.regionId].children.push({
                        key: item.subRegionId,
                        label: item.subRegionName,
                        value: item.subRegionName
                    });
                } else {
                    obj[item.regionId] = {
                        key: item.regionId,
                        label: item.regionName,
                        value: item.regionName,
                        children: [
                            {
                                key: item.subRegionId,
                                label: item.subRegionName,
                                value: item.subRegionName
                            }
                        ]
                    };
                }
                return item;
            });
            console.log(Object.values(obj));
        </script>
    </body>
</html>
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题