实际开发中,总是会遇到数组对象分割成子数组的应用,以下示例是我在开发中使用的的删除的方法,仅供参考
<!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>
可以直接复制运行代码,查看打印结果