固废处理和运输公司数据结构展示 - 详细项目和站点信息
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}]}]}, {'companyName': '全国垃圾处理公司', 'comanyNo': '333 ', 'total': 666, 'children': [{'projectName': '全国连锁', 'projectNo': '333 ', 'total': 666, 'children': [{'siteName': '全国站', 'siteNo': '333 ', 'total': 666, 'a': 333, 'b': 333}]}]}]
// js封装函数实现输入数据datas,期望输出结果result内容:function transformData(datas) { const result = [];
datas.forEach(data => {
const company = {
companyName: data.companyName,
comanyNo: data.comanyNo,
total: data.total,
children: []
};
if (data.children) {
data.children.forEach(project => {
const projectObj = {
projectName: project.projectName,
projectNo: project.projectNo,
total: project.total,
children: []
};
if (project.children) {
project.children.forEach(site => {
const siteObj = {
siteName: site.siteName,
siteNo: site.siteNo,
total: site.total,
a: site.a,
b: site.b
};
projectObj.children.push(siteObj);
});
} else {
projectObj.siteName = project.siteName;
projectObj.siteNo = project.siteNo;
projectObj.a = project.a;
projectObj.b = project.b;
}
company.children.push(projectObj);
});
}
result.push(company);
});
return result;
}
const transformedData = transformData(datas); console.log(transformedData);
原文地址: https://www.cveoy.top/t/topic/pets 著作权归作者所有。请勿转载和采集!