SOURCE

const data = {
    "nodeName":"发起人",
    "type":0,
    "nodeId":"start1640253253108",
    "childNode":{
        "nodeName":"审核人",
        "error":false,
        "type":1,
        "settype":1,
        "selectMode":0,
        "selectRange":0,
        "directorLevel":1,
        "examineMode":1,
        "noHanderAction":1,
        "examineEndDirectorLevel":0,
        "nodeUserList":[
            {
                "type":1,
                "targetId":1,
                "name":"message"
            },
            {
                "type":1,
                "targetId":2,
                "name":"normal"
            }
        ]
    }
}
 function deepList(treeData, result={}) {
     const allowKey = ['type', 'prevId', 'nodeId', 'approvals', 'copys','childNode', 'nodeName']
        if (treeData.childNode) {
            for (const key in treeData) {
            if(allowKey.includes(key)) result[key] = treeData[key];
            if (key==='type' && treeData[key] === 1) {
              result["approvals"] = treeData["nodeUserList"];
            } else if (key==='type'&& treeData[key] === 2) {
              result["copys"] = treeData["nodeUserList"];
            }
          }
          result.childNode.prevId = treeData.nodeId;
          deepList(treeData.childNode, result.childNode);
        } else {
          for (const key in treeData) {
            if(allowKey.includes(key)) result[key] = treeData[key];
            if (key==='type' && treeData[key] === 1) {
              result["approvals"] = treeData["nodeUserList"];
            } else if (key==='type'&& treeData[key] === 2) {
              result["copys"] = treeData["nodeUserList"];
            }
          }
        }
        return result;
      }


      function objectHumpToLine(obj, newObj = {}) {
        for (let key in obj) {
          if (typeof obj[key] === "object") {
            const handleKey = key.replace(/([A-Z])/g, "_$1").toLowerCase();
            newObj[handleKey] = {};
            objectHumpToLine(obj[key], newObj[handleKey]);
          } else {
            newObj[key.replace(/([A-Z])/g, "_$1").toLowerCase()] = obj[key];
          }
        }
        return newObj;
      }

console.log(objectHumpToLine(data))
console 命令行工具 X clear

                    
>
console