固废处理及运输数据分析 - 详细站点信息
const result = [ { companyName: '固废处理公司', comanyNo: '111 ', total: 180, children: [ { projectName: '主城区应急填埋', projectNo: '111 ', total: 80, children: [ { siteName: '洛城清理场', siteNo: '111 ', total: 30, a: 111, b: 111, }, { siteName: '黑石子填埋场', siteNo: '112 ', total: 50, a: 111, b: 111, } ] }, { projectName: '其他区域应急填埋', projectNo: '112 ', siteName: '花溪填埋场', siteNo: '113', total: 100, a: 111, b: 111, } ] }, { companyName: '固废运输公司', comanyNo: '222 ', total: 530, children: [ { projectName: '市级转运', projectNo: '222 ', total: 270, children: [ { projectName: '市级转运', projectNo: '222 ', siteName: '界石站', siteNo: '222 ', total: 100, a: 111, b: 111, }, { projectName: '市级转运', projectNo: '222 ', siteName: '走马站', siteNo: '223 ', total: 60, a: 111, b: 111, }, { projectName: '市级转运', projectNo: '222 ', siteName: '夏家坝站', siteNo: '224 ', total: 30, a: 111, b: 111, }, { projectName: '市级转运', projectNo: '222 ', siteName: '西永站', siteNo: '225 ', total: 80, a: 111, b: 111, } ] }, { projectName: '高校餐厨转运', projectNo: '223 ', siteName: '西永站', siteNo: '226 ', total: 80, a: 111, b: 111, }, { projectName: '渝北区餐厨转运', projectNo: '224 ', siteName: '冉家坝站', siteNo: '227 ', total: 180, a: 111, b: 111, } ] } ]
const datas = [{ "companyName": "固废处理公司", "comanyNo": "111 ", "total": 180, "children": [{ "projectName": "主城区应急填埋", "projectNo": "111 ", "total": 80, "children": [{ "siteName": "洛城清理场", "siteNo": "111 ", "total": 30, "a": 10, "b": 20 }, { "siteName": "黑石子填埋场", "siteNo": "112 ", "total": 50, "a": 20, "b": 30 }] }, { "projectName": "其他区域应急填埋", "projectNo": "112 ", "total": 100, "children": [{ "siteName": "花溪填埋场", "siteNo": "113", "total": 100, "a": 40, "b": 60 }] }] }, { "companyName": "固废运输公司", "comanyNo": "222 ", "total": 530, "children": [{ "projectName": "市级转运", "projectNo": "222 ", "total": 270, "children": [{ "siteName": "界石站", "siteNo": "222 ", "total": 100, "a": 80, "b": 20 }, { "siteName": "走马站", "siteNo": "223 ", "total": 60, "a": 30, "b": 30 }, { "siteName": "夏家坝站", "siteNo": "224 ", "total": 30, "a": 20, "b": 10 }, { "siteName": "西永站", "siteNo": "225 ", "total": 80, "a": 10, "b": 70 }] }, { "projectName": "高校餐厨转运", "projectNo": "223 ", "total": 80, "children": [{ "siteName": "西永站", "siteNo": "226 ", "total": 80, "a": 70, "b": 10 }] }, { "projectName": "渝北区餐厨转运", "projectNo": "224 ", "total": 180, "children": [{ "siteName": "冉家坝站", "siteNo": "227 ", "total": 180, "a": 40, "b": 140 }] }] }]
// js封装函数实现输入数据datas,期望输出结果result内容:function processData(datas) { const result = [];
// Iterate through each data object in the input datas for (const data of datas) { const company = { companyName: data.companyName, comanyNo: data.comanyNo, total: data.total, children: [] };
// Check if the data object has children if (data.children) { // Iterate through each child object in the data object for (const child of data.children) { const project = { projectName: child.projectName, projectNo: child.projectNo, total: child.total, children: [] };
// Check if the child object has children if (child.children) { // Iterate through each grandchild object in the child object for (const grandchild of child.children) { const site = { siteName: grandchild.siteName, siteNo: grandchild.siteNo, total: grandchild.total, a: grandchild.a, b: grandchild.b };
// Add the site object to the children array of the project object project.children.push(site); } } // Add the project object to the children array of the company object company.children.push(project); } }
// Add the company object to the result array result.push(company); }
return result;}
const processedData = processData(datas);console.log(processedData
原文地址: https://www.cveoy.top/t/topic/pett 著作权归作者所有。请勿转载和采集!