我有bellow 4数组对象
var dataArray1 = [
{'ProjectID': '001', 'Project': 'Main Project 1', 'StartYear': '2023', 'EndYear': '2023',
'StartMonth': 'Sep', 'EndMonth': 'Dec', 'Owner':'Tom' , 'Status':'Passed', 'Category' :
'Main'},
{'ProjectID': '002', 'Project': 'Main Project 2', 'StartYear': '2024', 'EndYear': '2024',
'StartMonth': 'Jan', 'EndMonth': 'May', 'Owner':'Tom' , 'Status':'Inprogress', 'Category' :
'Main'},
];
var dataArray2 = [
{'ProjectID': '001', 'SubProjectID': '001', 'Project': 'Sub Project 1', 'StartYear': '2023',
'EndYear': '2023', 'StartMonth': 'Oct', 'EndMonth': 'Dec', 'Owner':'Tom' , 'Status':'Passed',
'Category' : 'Pahse'},
{'ProjectID': '002', 'SubProjectID': '001', 'Project': 'Sub Project 1', 'StartYear': '2024',
'EndYear': '2024', 'StartMonth': 'Jan', 'EndMonth': 'Feb', 'Owner':'Tom' ,
'Status':'Inprogress', 'Category' : 'Pahse'},
{'ProjectID': '002', 'SubProjectID': '002', 'Project': 'Sub Project 2', 'StartYear': '2024',
'EndYear': '2024', 'StartMonth': 'Jan', 'EndMonth': 'Feb', 'Owner':'Tom' ,
'Status':'Inprogress', 'Category' : 'Pahse'},
{'ProjectID': '002', 'SubProjectID': '003', 'Project': 'Sub Project 3', 'StartYear': '2024',
'EndYear': '2024', 'StartMonth': 'Feb', 'EndMonth': 'Mar', 'Owner':'Tom' , 'Status':'Yet to
Start', 'Category' : 'Pahse'},
{'ProjectID': '002', 'SubProjectID': '004', 'Project': 'Sub Project 4', 'StartYear': '2024',
'EndYear': '2024', 'StartMonth': 'Mar', 'EndMonth': 'May', 'Owner':'Tom' , 'Status':'Yet to
Start', 'Category' : 'Pahse'},
];
var dataArray3 = [
{'ProjectID': '001', 'SubProjectID': '001', 'MilestoneID': '001', 'Project': 'Milestone 1',
'StartYear': '2023', 'EndYear': '2023', 'StartMonth': 'Oct', 'EndMonth': 'Nov', 'Owner':'Tom'
, 'Status':'Passed', 'Category' : 'Milestone'},
{'ProjectID': '001', 'SubProjectID': '001', 'MilestoneID': '002', 'Project': 'Milestone 2',
'StartYear': '2023', 'EndYear': '2023', 'StartMonth': 'Nov', 'EndMonth': 'Dec', 'Owner':'Tom'
, 'Status':'Passed', 'Category' : 'Milestone'},
{'ProjectID': '002', 'SubProjectID': '001', 'MilestoneID': '001','Project': 'Milestone 1',
'StartYear': '2024', 'EndYear': '2024', 'StartMonth': 'Jan', 'EndMonth': 'Feb', 'Owner':'Tom'
, 'Status':'Yet to Start', 'Category' : 'Milestone'},
{'ProjectID': '002', 'SubProjectID': '002', 'MilestoneID': '001', 'Project': 'Milestone 1',
'StartYear': '2024', 'EndYear': '2024', 'StartMonth': 'Jan', 'EndMonth': 'Feb', 'Owner':'Tom'
, 'Status':'Inprogress', 'Category' : 'Milestone'},
{'ProjectID': '002', 'SubProjectID': '003', 'MilestoneID': '001', 'Project': 'Milestone 1',
'StartYear': '2024', 'EndYear': '2024', 'StartMonth': 'Feb', 'EndMonth': 'Feb', 'Owner':'Tom'
,
'Status':'Yet to Start', 'Category' : 'Milestone'},
{'ProjectID': '002', 'SubProjectID': '003', 'MilestoneID': '002', 'Project': 'Milestone 2',
'StartYear': '2024', 'EndYear': '2024', 'StartMonth': 'Feb', 'EndMonth': 'Mar', 'Owner':'Tom'
,
'Status':'Yet to Start', 'Category' : 'Milestone'},
{'ProjectID': '002', 'SubProjectID': '004', 'MilestoneID': '001', 'Project': 'Milestone 1',
'StartYear': '2024', 'EndYear': '2024', 'StartMonth': 'Mar', 'EndMonth': 'May', 'Owner':'Tom'
,
'Status':'Yet to Start', 'Category' : 'Milestone'},
];
var dataArray4 = [
{'ProjectID': '001', 'SubProjectID': '001', 'MilestoneID': '001', 'Project': 'Activity 1',
'StartYear': '2023', 'EndYear': '2023', 'StartMonth': 'Oct', 'EndMonth': 'Nov', 'Owner':'Tom'
,
'Status':'Passed', 'Category' : 'Activity'},
{'ProjectID': '001', 'SubProjectID': '001', 'MilestoneID': '002', 'Project': 'Activity 1',
'StartYear': '2023', 'EndYear': '2023', 'StartMonth': 'Nov', 'EndMonth': 'Nov', 'Owner':'Tom'
,
'Status':'Passed', 'Category' : 'Activity'},
{'ProjectID': '001', 'SubProjectID': '001', 'MilestoneID': '002', 'Project': 'Activity 2',
'StartYear': '2023', 'EndYear': '2023', 'StartMonth': 'Nov', 'EndMonth': 'Dec', 'Owner':'Tom'
,
'Status':'Passed', 'Category' : 'Activity'},
{'ProjectID': '002', 'SubProjectID': '001', 'MilestoneID': '001', 'Project': 'Activity 1',
'StartYear': '2024', 'EndYear': '2024', 'StartMonth': 'Jan', 'EndMonth': 'Feb', 'Owner':'Tom'
,
'Status':'Yet to Start', 'Category' : 'Activity'},
];
我try 在最终数组对象下面存档
var dataArrayfinal = [
{'ProjectID': '001', 'Project': 'Main Project 1', 'StartYear': '2023', 'EndYear': '2023',
'StartMonth': 'Sep', 'EndMonth': 'Dec', 'Owner':'Tom' , 'Status':'Passed', 'Category' :
'Main'},
{'ProjectID': '001', 'SubProjectID': '001', 'Project': 'Sub Project 1', 'StartYear': '2023',
'EndYear': '2023', 'StartMonth': 'Oct', 'EndMonth': 'Dec', 'Owner':'Tom' , 'Status':'Passed',
'Category' : 'Pahse'},
{'ProjectID': '001', 'SubProjectID': '001', 'MilestoneID': '001', 'Project': 'Milestone 1',
'StartYear': '2023', 'EndYear': '2023', 'StartMonth': 'Oct', 'EndMonth': 'Nov', 'Owner':'Tom'
, 'Status':'Passed', 'Category' : 'Milestone'},
{'ProjectID': '001', 'SubProjectID': '001', 'MilestoneID': '001', 'Project': 'Activity 1',
'StartYear': '2023', 'EndYear': '2023', 'StartMonth': 'Oct', 'EndMonth': 'Nov', 'Owner':'Tom'
, 'Status':'Passed', 'Category' : 'Activity'},
{'ProjectID': '001', 'SubProjectID': '001', 'MilestoneID': '002', 'Project': 'Milestone 2',
'StartYear': '2023', 'EndYear': '2023', 'StartMonth': 'Nov', 'EndMonth': 'Dec',
'Owner':'Tom' , 'Status':'Passed', 'Category' : 'Milestone'},
{'ProjectID': '001', 'SubProjectID': '001', 'MilestoneID': '002', 'Project': 'Activity 1',
'StartYear': '2023', 'EndYear': '2023', 'StartMonth': 'Nov', 'EndMonth': 'Nov',
'Owner':'Tom' , 'Status':'Passed', 'Category' : 'Activity'},
{'ProjectID': '001', 'SubProjectID': '001', 'MilestoneID': '002', 'Project': 'Activity 2',
'StartYear': '2023', 'EndYear': '2023', 'StartMonth': 'Nov', 'EndMonth': 'Dec',
'Owner':'Tom' , 'Status':'Passed', 'Category' : 'Activity'},
{'ProjectID': '002', 'Project': 'Main Project 2', 'StartYear': '2024', 'EndYear': '2024',
'StartMonth': 'Jan', 'EndMonth': 'May', 'Owner':'Tom' , 'Status':'Inprogress', 'Category' :
'Main'},
{'ProjectID': '002', 'SubProjectID': '001', 'Project': 'Sub Project 1', 'StartYear':
'2024',
'EndYear': '2024', 'StartMonth': 'Jan', 'EndMonth': 'Feb', 'Owner':'Tom' , 'Status':'Inprogress', 'Category' : 'Pahse'},
{'ProjectID': '002', 'SubProjectID': '001', 'MilestoneID': '001','Project': 'Milestone 1', 'StartYear': '2024', 'EndYear': '2024', 'StartMonth': 'Jan', 'EndMonth': 'Feb', 'Owner':'Tom' , 'Status':'Yet to Start', 'Category' : 'Milestone'},
{'ProjectID': '002', 'SubProjectID': '001', 'MilestoneID': '001', 'Project': 'Activity 1', 'StartYear': '2024', 'EndYear': '2024', 'StartMonth': 'Jan', 'EndMonth': 'Feb', 'Owner':'Tom' , 'Status':'Yet to Start', 'Category' : 'Activity'},
{'ProjectID': '002', 'SubProjectID': '002', 'Project': 'Sub Project 2', 'StartYear': '2024', 'EndYear': '2024', 'StartMonth': 'Jan', 'EndMonth': 'Feb', 'Owner':'Tom' , 'Status':'Inprogress', 'Category' : 'Pahse'},
{'ProjectID': '002', 'SubProjectID': '002', 'MilestoneID': '001', 'Project': 'Milestone 1', 'StartYear': '2024', 'EndYear': '2024', 'StartMonth': 'Jan', 'EndMonth': 'Feb', 'Owner':'Tom' , 'Status':'Inprogress', 'Category' : 'Milestone'},
{'ProjectID': '002', 'SubProjectID': '003', 'Project': 'Sub Project 3', 'StartYear': '2024', 'EndYear': '2024', 'StartMonth': 'Feb', 'EndMonth': 'Mar', 'Owner':'Tom' , 'Status':'Yet to Start', 'Category' : 'Pahse'},
{'ProjectID': '002', 'SubProjectID': '003', 'MilestoneID': '001', 'Project': 'Milestone 1', 'StartYear': '2024', 'EndYear': '2024', 'StartMonth': 'Feb', 'EndMonth': 'Feb', 'Owner':'Tom' , 'Status':'Yet to Start', 'Category' : 'Milestone'},
{'ProjectID': '002', 'SubProjectID': '003', 'MilestoneID': '002', 'Project': 'Milestone 2', 'StartYear': '2024', 'EndYear': '2024', 'StartMonth': 'Feb', 'EndMonth': 'Mar', 'Owner':'Tom' , 'Status':'Yet to Start', 'Category' : 'Milestone'},
{'ProjectID': '002', 'SubProjectID': '004', 'Project': 'Sub Project 4', 'StartYear': '2024', 'EndYear': '2024', 'StartMonth': 'Mar', 'EndMonth': 'May', 'Owner':'Tom' , 'Status':'Yet to Start', 'Category' : 'Pahse'},
{'ProjectID': '002', 'SubProjectID': '004', 'MilestoneID': '001', 'Project': 'Milestone 1', 'StartYear': '2024', 'EndYear': '2024', 'StartMonth': 'Mar', 'EndMonth': 'May', 'Owner':'Tom' , 'Status':'Yet to Start', 'Category' : 'Milestone'},
];
我try 了以下代码,并通过匹配子项目ID成功地将第一个数组和第二个数组组合在一起
var dataArrayfinal = [];
// Iterate over dataArray1
for (var i = 0; i < dataArray1.length; i++) {
dataArrayfinal.push(dataArray1[i]);
// Find matching items in dataArray2
var matchingItems2 = dataArray2.filter(item => item.ProjectID === dataArray1[i].ProjectID);
dataArrayfinal = dataArrayfinal.concat(matchingItems2);
}
我无法移动和添加里程碑数组和活动array.有没有办法把这个存档?
基本上我想要的是结合我的第一个数组,其中包含第二个数组,这是我的子项目数组的主要项目的细节.然后将其与里程碑数组结合起来.最后是活动array.但同时这需要遵循的顺序.项目-子项目-里程碑-活动