Advertisement
Silviya7

Sprint Review

Apr 17th, 2024
560
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function solve(input){
  2.     const n= Number(input.shift());
  3.  
  4.     Assigneetasks={};
  5.  
  6.  
  7.     for (let i = 0; i <n; i++) {
  8.  
  9.         const[assignee,taskId,title,status,estimatedPoints]= input[i].split(':');
  10.                
  11.        if(!Assigneetasks[assignee]){
  12.         Assigneetasks[assignee]=[{taskId,title,status,estimatedPoints}];    
  13.    
  14.        }
  15.        else{
  16.         Assigneetasks[assignee].push({taskId,title,status,estimatedPoints});
  17.        }
  18.        
  19.     }
  20.     for (let j = 0; j < n; j++) {
  21.        
  22.         input.shift();
  23.     }
  24.  
  25.    
  26.     let CmdLine='';
  27.     //CmdLine= input.shift();
  28.     for(let p=0; p<input.length; p++){
  29.        
  30.      const [Cmd,assignee,taskId,title,status,estimatedPoints]=input[p].split(':');
  31.    
  32.      switch(Cmd){
  33.  
  34.         case'Add New':
  35.         //let assignee=Alltasks.find(t=> t.assignee== assignee);
  36.         if(! Assigneetasks[assignee]){
  37.             console.log(`Assignee ${assignee} does not exist on the board!`)
  38.         }
  39.         else{
  40.             Assigneetasks[assignee].push({taskId,title,status,estimatedPoints});
  41.         }
  42.          break;
  43.  
  44.         case 'Change Status':
  45.         let newStatus=title;
  46.         const Alltasks=  Assigneetasks[assignee];
  47.         let taskp= '';
  48.         if(Alltasks){
  49.  
  50.             taskp=  Alltasks.find(t=> t.taskId== taskId);
  51.             if(!taskp) {
  52.  
  53.                 console.log(`Task with ID ${taskId} does not exist for ${assignee}!`);
  54.                 }
  55.                 else {
  56.  
  57.                taskp.status = newStatus;
  58.                 }
  59.            
  60.         }    
  61.        else if(!Assigneetasks[assignee]){
  62.             console.log(`Assignee ${assignee} does not exist on the board!`);
  63.           }      
  64.        
  65.        
  66.           break;
  67.  
  68.         case'Remove Task':
  69.         let index= Number(taskId);
  70.         const Alltasks1=  Assigneetasks[assignee];      
  71.         if(!Alltasks1){
  72.             console.log(`Assignee ${assignee} does not exist on the board!`)
  73.         }
  74.         else{
  75.             if(index <0 || index >Number(Assigneetasks[assignee].length-1)){
  76.               console.log('Index is out of range!');
  77.             }
  78.             else{
  79.             Alltasks1.splice(index,1);
  80.             }
  81.         }
  82.          break;
  83.  
  84.  
  85.      }    
  86.      //CmdLine= input.shift();
  87.     }
  88.     let ArrTasks={};
  89.     ArrTasks['ToDo']=0;
  90.     ArrTasks['In Progress']=0;
  91.     ArrTasks['Code Review']=0;
  92.     ArrTasks['Done']=0;
  93.  
  94.  
  95.      for (const asignee in Assigneetasks) {
  96.        
  97.        let Asignee= Assigneetasks[asignee];
  98.        for (const t of Asignee) {
  99.    
  100.             ArrTasks[t.status]+=Number(t.estimatedPoints);
  101.  
  102.        }
  103.      }
  104.  
  105.     console.log(`ToDo: ${ArrTasks['ToDo']}pts`);
  106.     console.log(`In Progress: ${ArrTasks['In Progress']}pts`);
  107.     console.log(`Code Review: ${ArrTasks['Code Review']}pts`);
  108.     console.log(`Done Points: ${ArrTasks['Done']}pts`);
  109.  
  110.  
  111.     let sumOtherPoints=Number(ArrTasks['ToDo'])+Number(ArrTasks['In Progress'])+Number(ArrTasks['Code Review']);
  112.     if(Number(ArrTasks['Done'] )>=sumOtherPoints){
  113.     console.log(`Sprint was successful!`);
  114.     }
  115.     else{
  116.         console.log(`Sprint was unsuccessful...`);
  117.     }
  118.  
  119. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement