Welcome toVigges Developer Community-Open, Learning,Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
415 views
in Technique[技术] by (71.8m points)

关于对象递归遍历的问题

现在有这样的一个对象,我想把他递归成下面这种数组格式,想问一下大家,有什么好办法。

{
  "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', // 只包括审批节点,不包括分支节点
  }
  ...
];

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

大家耐心看看呀,体现水平的时候


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to Vigges Developer Community for programmer and developer-Open, Learning and Share
...