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