40 lines
1.3 KiB
JavaScript
40 lines
1.3 KiB
JavaScript
|
|
import fs from 'fs';
|
||
|
|
|
||
|
|
// Read the data
|
||
|
|
const data = JSON.parse(fs.readFileSync('网页未导入数据/学生完成的项目.json', 'utf8'));
|
||
|
|
|
||
|
|
// Filter for environmental protection projects
|
||
|
|
const envProjects = data.filter(item => item.所属就业管家 === '环保');
|
||
|
|
|
||
|
|
// Group by unit name
|
||
|
|
const grouped = {};
|
||
|
|
envProjects.forEach(item => {
|
||
|
|
const unitName = item.单元名称查询;
|
||
|
|
if (!grouped[unitName]) {
|
||
|
|
grouped[unitName] = [];
|
||
|
|
}
|
||
|
|
// Add each project (they may have multiple projects in AI项目名称 array)
|
||
|
|
item.AI项目名称.forEach(project => {
|
||
|
|
if (project && project !== "2." && project.trim()) {
|
||
|
|
// Remove leading number and dot
|
||
|
|
const cleanProject = project.replace(/^\d+\./, '').trim();
|
||
|
|
grouped[unitName].push(cleanProject);
|
||
|
|
}
|
||
|
|
});
|
||
|
|
});
|
||
|
|
|
||
|
|
// Convert to desired format
|
||
|
|
const myProjectsData = Object.keys(grouped).map(unitName => ({
|
||
|
|
unitName,
|
||
|
|
projects: grouped[unitName]
|
||
|
|
}));
|
||
|
|
|
||
|
|
// Output the formatted data
|
||
|
|
console.log('const myProjectsData = ' + JSON.stringify(myProjectsData, null, 2) + ';');
|
||
|
|
|
||
|
|
// Also save to a file
|
||
|
|
fs.writeFileSync('env_projects.js', 'export const myProjectsData = ' + JSON.stringify(myProjectsData, null, 2) + ';');
|
||
|
|
|
||
|
|
console.log('\nTotal units:', myProjectsData.length);
|
||
|
|
console.log('Total projects:', myProjectsData.reduce((sum, unit) => sum + unit.projects.length, 0));
|