现在有这样的一个对象,我想把他递归成下面这种数组格式,想问一下大家,有什么好办法。
{
"type": "start",
"name": "startname",
"nodeId": "sid-startevent",
"properties": {},
"childNode": {
"name": "unkonw",
"type": "approver", // 审批节点类型
"prevId": "sid-startevent",
"nodeId": "1918_5cd3",
"properties": {
"activateType": "ONE_BY_ONE",
"agreeAll": false,
"actionerRules": [
{
"type": "own", // 审批人类型
"multi": 1,
"select": [
"allStaff"
],
"range": {
"approvals": [],
"labels": [],
"allStaff": null
},
"key": "manual_1918_5cd3_de98_c68d"
}
]
},
"childNode": {
"name": "unkonw",
"type": "approver", // 审批节点类型
"prevId": "1918_5cd3",
"nodeId": "84b1_5360",
"properties": {
"activateType": "ONE_BY_ONE",
"agreeAll": false,
"actionerRules": [
{
"type": "own", // 审批人类型
"isEmpty": false
}
]
},
"childNode": {
"type": "route", // 分支
"prevId": "84b1_5360",
"nodeId": "ce9f_1576",
"conditionNodes": [ // 条件分支节点
{
"name": "条件1", // 条件名称
"type": "condition", // 分支类型
"prevId": "ce9f_1576",
"nodeId": "66c2_e3c4",
"properties": {
"conditions": [
[
{
"paramKey": "dingtalk_origin_dept",
"type": "dingtalk_actioner_dept_condition",
"paramLabel": "发起人",
"isEmpty": false,
"conds": [
{
"type": "user",
"value": "1561256203743636",
"attrs": {
"name": "墨鱼",
"avatar": ""
}
}
]
}
]
]
},
"childNode": {
"type": "route",
"prevId": "66c2_e3c4",
"nodeId": "53b5_4029",
"conditionNodes": [ // 条件分支节点
{
"name": "条件1-1", // 条件分支名称
"type": "condition",
"prevId": "53b5_4029",
"nodeId": "1634_c760",
"properties": {
"conditions": [
[
{
"paramKey": "dingtalk_origin_dept",
"type": "dingtalk_actioner_dept_condition",
"paramLabel": "发起人",
"isEmpty": false,
"conds": [
{
"type": "user",
"value": "1561256203743636",
"attrs": {
"name": "墨鱼",
"avatar": ""
}
}
]
}
]
]
},
"childNode": {
"name": "审批节点名称3", // 审批节点名称
"type": "approver",
"prevId": "1634_c760",
"nodeId": "8764_9937",
"properties": {
"activateType": "ONE_BY_ONE",
"agreeAll": false,
"actionerRules": [
{
"type": "target_originator", // 审批人类型
"isEmpty": false
}
]
},
"childNode": {
"name": "UNKNOWN",
"type": "notifier",
"prevId": "dafc_025f",
"nodeId": "1cc3_959a",
"properties": {
"actionerRules": [
{
"select": [
"allStaff"
],
"range": {
"allStaff": null
},
"multi": 1,
"type": "target_select",
"key": "manual_1cc3_959a_6bf9_54c0"
}
]
}
}
}
}
],
"properties": {}
}
}
],
"properties": {}
}
}
}
}
const data = [
{
key: '1'
condition: '条件1', // 条件分支名称
approverNode: '审批节点名称1', // 审批节点名称
approverName: '发起人自选', // 审批人类型
nodeId: '审批节点id', // 只包括审批节点,不包括分支节点
},
{
key: '2'
condition: '条件1', // 条件分支名称
approverNode: '审批节点名称2', // 审批节点名称
approverName: '发起人自选', // 审批人类型
nodeId: '审批节点id', // 只包括审批节点,不包括分支节点
},
{
key: '3'
condition: '条件2', // 条件分支名称
approverNode: '审批节点名称3', // 审批节点名称
approverName: '发起人自己', // 审批人类型
nodeId: '审批节点id', // 只包括审批节点,不包括分支节点
},
{
key: '4'
condition: '', // 不存在条件分支
approverNode: '审批节点名称', // 审批节点名称
approverName: '发起人自选', // 审批人类型
nodeId: '审批节点id', // 只包括审批节点,不包括分支节点
}
...
];