JavaScript 数组对象分割成多个子数组

实际开发中,总是会遇到数组对象分割成子数组的应用,以下示例是我在开发中使用的的删除的方法,仅供参考

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>数组分割成子数组</title>
</head>

<body>
    <script>
        // 原始数组对象
        let originalArray = [
            {
                "INSTU_CDE": "0000",
                "ORG_NAME": "银行总行",
                "LEVELUNIT": "1",
                "APP_ID": "62",
                "SUPERUNITID": "0000",
                "UNITSEQ": "500",
                "ID": "500",
                "UNITNAME": "银行总行",
                "UNITID": "500",
                "ISLEAF": false
            },
            {
                "INSTU_CDE": "0000",
                "ORG_NAME": "北区分行",
                "LEVELUNIT": "2",
                "APP_ID": "62",
                "SUPERUNITID": "500",
                "UNITSEQ": "500,002",
                "ID": "002",
                "UNITNAME": "北区分行",
                "UNITID": "002",
                "ISLEAF": false
            },
            {
                "INSTU_CDE": "0000",
                "ORG_NAME": "东区分行",
                "LEVELUNIT": "2",
                "APP_ID": "62",
                "SUPERUNITID": "500",
                "UNITSEQ": "500,003",
                "ID": "003",
                "UNITNAME": "东区分行",
                "UNITID": "003",
                "ISLEAF": false
            },
            {
                "INSTU_CDE": "0000",
                "ORG_NAME": "南区分行",
                "LEVELUNIT": "2",
                "APP_ID": "62",
                "SUPERUNITID": "500",
                "UNITSEQ": "500,004",
                "ID": "004",
                "UNITNAME": "南区分行",
                "UNITID": "004",
                "ISLEAF": false
            },
            {
                "INSTU_CDE": "0000",
                "ORG_NAME": "北京分行",
                "LEVELUNIT": "2",
                "APP_ID": "62",
                "SUPERUNITID": "500",
                "UNITSEQ": "500,005",
                "ID": "005",
                "UNITNAME": "北京分行",
                "UNITID": "005",
                "ISLEAF": false
            },
            {
                "INSTU_CDE": "0000",
                "ORG_NAME": "天津分行",
                "LEVELUNIT": "2",
                "APP_ID": "62",
                "SUPERUNITID": "500",
                "UNITSEQ": "500,006",
                "ID": "006",
                "UNITNAME": "天津分行",
                "UNITID": "006",
                "ISLEAF": false
            },
            {
                "INSTU_CDE": "0000",
                "ORG_NAME": "海南银行",
                "LEVELUNIT": "2",
                "APP_ID": "62",
                "SUPERUNITID": "500",
                "UNITSEQ": "500,100001",
                "ID": "100001",
                "UNITNAME": "海南银行",
                "UNITID": "100001",
                "ISLEAF": false
            },
            {
                "INSTU_CDE": "0000",
                "ORG_NAME": "北京分公司",
                "LEVELUNIT": "2",
                "APP_ID": "62",
                "SUPERUNITID": "500",
                "UNITSEQ": "500,800",
                "ID": "800",
                "UNITNAME": "北京分公司",
                "UNITID": "800",
                "ISLEAF": false
            },
            {
                "INSTU_CDE": "0000",
                "ORG_NAME": "上海分公司",
                "LEVELUNIT": "2",
                "APP_ID": "62",
                "SUPERUNITID": "500",
                "UNITSEQ": "500,900",
                "ID": "900",
                "UNITNAME": "上海分公司",
                "UNITID": "900",
                "ISLEAF": false
            },
            {
                "INSTU_CDE": "0000",
                "ORG_NAME": "三亚分行",
                "LEVELUNIT": "3",
                "APP_ID": "62",
                "SUPERUNITID": "100001",
                "UNITSEQ": "500,100001,100002",
                "ID": "100002",
                "UNITNAME": "三亚分行",
                "UNITID": "100002",
                "ISLEAF": true
            },
            {
                "INSTU_CDE": "0000",
                "ORG_NAME": "儋州分行",
                "LEVELUNIT": "3",
                "APP_ID": "62",
                "SUPERUNITID": "100001",
                "UNITSEQ": "500,100001,100003",
                "ID": "100003",
                "UNITNAME": "儋州分行",
                "UNITID": "100003",
                "ISLEAF": true
            },
            {
                "INSTU_CDE": "0000",
                "ORG_NAME": "总行营业部",
                "LEVELUNIT": "3",
                "APP_ID": "62",
                "SUPERUNITID": "002",
                "UNITSEQ": "500,002,501",
                "ID": "501",
                "UNITNAME": "总行营业部",
                "UNITID": "501",
                "ISLEAF": true
            },
            {
                "INSTU_CDE": "0000",
                "ORG_NAME": "东区分行营业部",
                "LEVELUNIT": "3",
                "APP_ID": "62",
                "SUPERUNITID": "003",
                "UNITSEQ": "500,003,502",
                "ID": "502",
                "UNITNAME": "东区分行营业部",
                "UNITID": "502",
                "ISLEAF": true
            },
            {
                "INSTU_CDE": "0000",
                "ORG_NAME": "南区分行营业部",
                "LEVELUNIT": "3",
                "APP_ID": "62",
                "SUPERUNITID": "004",
                "UNITSEQ": "500,004,503",
                "ID": "503",
                "UNITNAME": "南区分行营业部",
                "UNITID": "503",
                "ISLEAF": true
            },
            {
                "INSTU_CDE": "0000",
                "ORG_NAME": "上海嘉定支行",
                "LEVELUNIT": "3",
                "APP_ID": "62",
                "SUPERUNITID": "003",
                "UNITSEQ": "500,003,505",
                "ID": "505",
                "UNITNAME": "上海嘉定支行",
                "UNITID": "505",
                "ISLEAF": true
            },
            {
                "INSTU_CDE": "0000",
                "ORG_NAME": "深圳罗湖支行",
                "LEVELUNIT": "3",
                "APP_ID": "62",
                "SUPERUNITID": "004",
                "UNITSEQ": "500,004,506",
                "ID": "506",
                "UNITNAME": "深圳罗湖支行",
                "UNITID": "506",
                "ISLEAF": true
            },
            {
                "INSTU_CDE": "0000",
                "ORG_NAME": "广州南沙支行",
                "LEVELUNIT": "3",
                "APP_ID": "62",
                "SUPERUNITID": "004",
                "UNITSEQ": "500,004,507",
                "ID": "507",
                "UNITNAME": "广州南沙支行",
                "UNITID": "507",
                "ISLEAF": true
            },
            {
                "INSTU_CDE": "0000",
                "ORG_NAME": "上海青浦支行",
                "LEVELUNIT": "3",
                "APP_ID": "62",
                "SUPERUNITID": "003",
                "UNITSEQ": "500,003,508",
                "ID": "508",
                "UNITNAME": "上海青浦支行",
                "UNITID": "508",
                "ISLEAF": true
            },
            {
                "INSTU_CDE": "0000",
                "ORG_NAME": "北京海淀支行",
                "LEVELUNIT": "3",
                "APP_ID": "62",
                "SUPERUNITID": "002",
                "UNITSEQ": "500,002,509",
                "ID": "509",
                "UNITNAME": "北京海淀支行",
                "UNITID": "509",
                "ISLEAF": true
            },
            {
                "INSTU_CDE": "0000",
                "ORG_NAME": "北京朝阳支行",
                "LEVELUNIT": "3",
                "APP_ID": "62",
                "SUPERUNITID": "002",
                "UNITSEQ": "500,002,510",
                "ID": "510",
                "UNITNAME": "北京朝阳支行",
                "UNITID": "510",
                "ISLEAF": true
            },
            {
                "INSTU_CDE": "0000",
                "ORG_NAME": "北京分行营业部",
                "LEVELUNIT": "3",
                "APP_ID": "62",
                "SUPERUNITID": "005",
                "UNITSEQ": "500,005,600",
                "ID": "600",
                "UNITNAME": "北京分行营业部",
                "UNITID": "600",
                "ISLEAF": true
            },
            {
                "INSTU_CDE": "0000",
                "ORG_NAME": "北京紫竹桥支行",
                "LEVELUNIT": "3",
                "APP_ID": "62",
                "SUPERUNITID": "005",
                "UNITSEQ": "500,005,601",
                "ID": "601",
                "UNITNAME": "北京紫竹桥支行",
                "UNITID": "601",
                "ISLEAF": true
            },
            {
                "INSTU_CDE": "0000",
                "ORG_NAME": "天津分行营业部",
                "LEVELUNIT": "3",
                "APP_ID": "62",
                "SUPERUNITID": "006",
                "UNITSEQ": "500,006,700",
                "ID": "700",
                "UNITNAME": "天津分行营业部",
                "UNITID": "700",
                "ISLEAF": true
            },
            {
                "INSTU_CDE": "0000",
                "ORG_NAME": "天津滨海支行",
                "LEVELUNIT": "3",
                "APP_ID": "62",
                "SUPERUNITID": "006",
                "UNITSEQ": "500,006,701",
                "ID": "701",
                "UNITNAME": "天津滨海支行",
                "UNITID": "701",
                "ISLEAF": true
            },
            {
                "INSTU_CDE": "0000",
                "ORG_NAME": "北分一部",
                "LEVELUNIT": "3",
                "APP_ID": "62",
                "SUPERUNITID": "800",
                "UNITSEQ": "500,800,801",
                "ID": "801",
                "UNITNAME": "北分一部",
                "UNITID": "801",
                "ISLEAF": true
            },
            {
                "INSTU_CDE": "0000",
                "ORG_NAME": "北分二部",
                "LEVELUNIT": "3",
                "APP_ID": "62",
                "SUPERUNITID": "800",
                "UNITSEQ": "500,800,802",
                "ID": "802",
                "UNITNAME": "北分二部",
                "UNITID": "802",
                "ISLEAF": true
            },
            {
                "INSTU_CDE": "0000",
                "ORG_NAME": "上海一部",
                "LEVELUNIT": "3",
                "APP_ID": "62",
                "SUPERUNITID": "900",
                "UNITSEQ": "500,900,901",
                "ID": "901",
                "UNITNAME": "上海一部",
                "UNITID": "901",
                "ISLEAF": true
            },
            {
                "INSTU_CDE": "0000",
                "ORG_NAME": "上海二部",
                "LEVELUNIT": "3",
                "APP_ID": "62",
                "SUPERUNITID": "900",
                "UNITSEQ": "500,900,902",
                "ID": "902",
                "UNITNAME": "上海二部",
                "UNITID": "902",
                "ISLEAF": true
            }
        ]
        console.log('原始数组对象', originalArray)
        
        // 根据 SUPERUNITID 生成的新的子数组对象
        let resultArray = []
        originalArray.map(mapItem => {
            if (resultArray.length === 0) {
                resultArray.push({superUnitId: mapItem['SUPERUNITID'], superUnitList: [mapItem]})
            } else {
                let res = resultArray.some((someItem) => {
                    if (someItem['superUnitId']  === mapItem['SUPERUNITID']) {
                        someItem['superUnitList'].push(mapItem)
                        return true
                    }
                })
                if (!res) {
                    resultArray.push({superUnitId: mapItem['SUPERUNITID'], superUnitList: [mapItem]})
                }
            }
        })
        console.log('子数组对象', resultArray)
    </script>
</body>

</html>

可以直接复制运行代码,查看打印结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值