marian74

2. Practice sessions

Jul 23rd, 2019
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function practiceSessions(data) {
  2.     let roadsList = {};
  3.     let commandAndInfo = data.shift();
  4.     while (commandAndInfo != 'END') {
  5.         let [command, road, racer, nextRoad] = commandAndInfo.split('->');
  6.        
  7.  
  8.         if (command == 'Add') {
  9.             if (!roadsList.hasOwnProperty(road)) {
  10.                 roadsList[road] = [racer];
  11.             } else {
  12.                 if ( !roadsList[road].includes(racer)) {
  13.                     roadsList[road].push(racer);
  14.                 }
  15.             }
  16.         } else if (command === 'Move') {
  17.             if (roadsList[road].includes(racer)) {
  18.                 let index = roadsList[road].indexOf(racer);
  19.                 roadsList[road].splice(index, 1);
  20.                 roadsList[nextRoad].push(racer);
  21.             }
  22.         } else if (command === 'Close') {
  23.             if (roadsList.hasOwnProperty(road)) {
  24.                 delete roadsList[road];
  25.             }
  26.         }
  27.         commandAndInfo = data.shift();
  28.     }
  29.    
  30.    
  31.       let sorted = Object.entries(roadsList)
  32.                          .sort((a, b) => a[0].localeCompare(b[0]))
  33.                          .sort((a, b) => b[1].length - a[1].length);
  34.       console.log('Practice sessions:');
  35.       sorted.forEach(e => {
  36.           console.log(`${e[0]}`);
  37.           e[1].forEach(e => console.log(`++${e}`));
  38.       })
  39.    
  40. }
Add Comment
Please, Sign In to add comment