Advertisement
Lulunga

taskPlanner mid exam

Jul 5th, 2019
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function taskPlanner(input) {
  2.     let taskHours = input.shift().split(' ');
  3.     taskHours = taskHours.map(Number).filter((el) => {
  4.         return el >= -1 && el <= 5;
  5.     });
  6.  
  7.     for (let line of input) {
  8.         if (line === 'End') {
  9.             break;
  10.         }
  11.         let tokens = line.split(' ');
  12.         let command = tokens[0];
  13.         if (command === 'Complete') {
  14.  
  15.             let index = Number(tokens[1]);
  16.             if (index >= 0 && index < taskHours.length) {
  17.                 taskHours[index] = 0;
  18.             }
  19.         } else if (command === 'Change') {
  20.             let index = Number(tokens[1]);
  21.             let time = Number(tokens[2]);
  22.             if (index >= 0 && index < taskHours.length) {
  23.                 taskHours[index] = time;
  24.             }
  25.         } else if (command === 'Drop') {
  26.             let index = Number(tokens[1]);
  27.             if (index >= 0 && index < taskHours.length) {
  28.                 taskHours[index] = -1;
  29.             }
  30.         } else if (command === 'Count') {
  31.             if (tokens[1] === 'Completed') {
  32.                 let completedTasks = taskHours.map(Number).filter(el => {
  33.                     return el === 0;
  34.                 });
  35.                 console.log(completedTasks.length);
  36.             } else if (tokens[1] === 'Incomplete') {
  37.                 let incompletedTasks = taskHours.map(Number).filter(el => {
  38.                     return el !== 0 && el !== -1;
  39.                 });
  40.                 console.log(incompletedTasks.length);
  41.             } else if (tokens[1] === 'Dropped') {
  42.  
  43.                 let droppedTasks = taskHours.map(Number).filter(el => {
  44.                     return el === -1;
  45.                 });
  46.                 console.log(droppedTasks.length);
  47.             }
  48.         }
  49.     }
  50.     let incompletedTaskscl = taskHours.map(Number).filter(el => {
  51.         return el !== 0 && el !== -1;
  52.     });
  53.     console.log(incompletedTaskscl.join(' '));
  54. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement