以下是一个示例的解决方法,使用JavaScript编写:
// 定义任务对象数组
const tasks = [
{ name: '任务1', group: 'A', progress: 10 },
{ name: '任务2', group: 'B', progress: 50 },
{ name: '任务3', group: 'A', progress: 30 },
{ name: '任务4', group: 'B', progress: 70 },
{ name: '任务5', group: 'C', progress: 20 },
];
// 创建一个以任务组为键的映射对象
const groupedTasks = {};
// 遍历任务数组
tasks.forEach(task => {
// 如果任务组尚未在映射对象中存在,则创建一个空数组作为值
if (!groupedTasks[task.group]) {
groupedTasks[task.group] = [];
}
// 将任务对象添加到相应组的数组中
groupedTasks[task.group].push(task);
});
// 将进展保持为数组
Object.keys(groupedTasks).forEach(group => {
// 获取组的任务数组
const tasksInGroup = groupedTasks[group];
// 将进展保持为数组
const progressArray = tasksInGroup.map(task => task.progress);
// 将进展数组添加为组对象的属性
groupedTasks[group].progressArray = progressArray;
});
// 打印结果
console.log(groupedTasks);
此解决方法将任务对象数组按照任务组进行分组,并将每个组中的任务的进展保存为一个数组。最后,将结果打印到控制台上。
上一篇:按任务的开始和结束日期评估工作量
下一篇:按任务过滤后访问托管主机的